E考试
链接:https://ac.nowcoder.com/acm/contest/8564/E
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld
题目描述
你和你的朋友参加了一场考试,试卷由 n 道判断题构成
你的朋友通过 py 提前得知了他错了 k 道题,而你只能和你的朋友对答案
请问你最多能对几道题
输入描述:
第一行,两个整数 n,k ,意义与题目描述中一致
第二行 n 个整数,表示你的答案
第三行 n 个整数,表示朋友的答案
输出描述:
一行一个整数,表示最多能对几题
示例1
输入
复制
3 1
1 0 1
0 0 1
输出
复制
3
备注:
判断题答案只包含0/1
题意:给出你两个人的答案,然后知道A错了k道题,问B对几个题
思路:
其实就是对比这两个人题目选的
1. 一样则都认为两个人都对
2.不一样则认为A错了,则B对了,所以k将减小1,当k为零时只能是B错了。
如果最后k还剩那么就B总题数还要减去k
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")
#include <immintrin.h>
#pragma GCC optimize(2)
#include <map>
#include <queue>
#include <string>
#include<iostream>
#include<stdio.h>
#include<string.h>
#include <algorithm>
#include <math.h>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
typedef pair<ll,ll> pii;
#define mem(a,x) memset(a,x,sizeof(a))
#define debug(x) cout << #x << ": " << x << endl;
#define rep(i,n) for(int i=0;i<(n);++i)
#define repi(i,a,b) for(int i=int(a);i<=(b);++i)
#define repr(i,b,a) for(int i=int(b);i>=(a);--i)
const int maxn=2e5+1010;
#define inf 0x3f3f3f3f
#define sf scanf
#define pf printf
const int mod=998244353;
const int MOD=10007;
inline int read() {
int x=0;
bool t=false;
char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return t?-x:x;
}
vector<ll> m1;
vector<ll> m2;
priority_queue<ll , vector<ll> , greater<ll> > mn;//上 小根堆 小到大
priority_queue<ll , vector<ll> , less<ll> > mx;//下 大根堆 大到小
map<ll,ll>mp;
ll n,k;
ll a[maxn],b[maxn];
#define read read()
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
for(int i=1;i<=n;i++){
scanf("%lld",&b[i]);
}
ll sum=0;
for(int i=1;i<=n;i++){
if(a[i]==b[i]){
sum++;
continue;
}else {
if(k>0) k--,sum++;
}
}
cout<<sum-k<<endl;
return 0;
}
京公网安备 11010502036488号