数学解法我会,只是想单纯卡一下暴力解法,觉得可行,但是MLE了,有什么东西能卡MLE吗,并且我的空间正好是512MB,正好被卡了,优化一点即可通过
#include <bits/stdc++.h>
using namespace std;
int read(){
int k=0,f=1;
char c=getchar();
while(c<'0' || c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9') k=k*10+c-'0',c=getchar();
return k*f;
}
void write(int x){
if(x<0) putchar('-'),x=-x;
if(x<10) putchar(x+'0');
else write(x/10),putchar(x%10+'0');
}
int main(){
int n;
n=read();
queue<int> q;
for (int i=1;i<=n;i++) q.push(i);
int day=0,last=0;
while (!q.empty()){
day++;
int cnt=1,len=q.size();
for (int i=0;i<len;i++){
int x=q.front();
q.pop();
if (cnt%3==1){
if (x==n){
last=day;
}
}
else q.push(x);
cnt++;
}
}
write(day);
cout<<" ";
write(last);
exit(0);
}