#include <iostream>
std::string w="2011012010012010012111002";
int A[200],B[200],N,c,d,a,b;
int main(){
std::cin>>N>>c>>d;
for(int i=0;i<c;i++)std::cin>>A[i];
for(int i=0;i<d;i++)std::cin>>B[i];
for(int i=0;i<N;i++){
char e=w[A[i%c]*5+B[i%d]];
a+=e=='1';b+=e=='0';}
std::cout<<a<<" "<<b;
return 0;}
std::共计5个,比原先的
using namespace std;
少2个byte!所以再见using(bushi
然后看向循环部分
用取模来表示循环,这没什么好说的
if(e=='1')
a++;
else if(e=='0')
b++;
要少14个byte!
这没什么可以用算法压的地方,最多各位在排版上忽略任何要求,变成这样:
#include <iostream>
std::string w="2011012010012010012111002";
int A[200],B[200],N,c,d,a,b;
int main(){std::cin>>N>>c>>d;for(int i=0;i<c;i++)std::cin>>A[i];for(int i=0;i<d;i++)std::cin>>B[i];for(int i=0;i<N;i++){char e=w[A[i%c]*5+B[i%d]];a+=e=='1';b+=e=='0';}std::cout<<a<<" "<<b;return 0;}
293byte,不能再少了。 当然如果各位有更好的方法请提醒我,我会尽快修改