原题:http://codeforces.com/gym/100863/problem/C
Problem C
思路:
这题翻译一下就是:给出一个数列的前两项a[1],a[2],通项公式为:a[n]=a[n-2]-a[n-1]。输出数列中第一个负数以及它的下标。若没有则输出两个0.
这道题我能过纯粹靠运气。做题的时候觉得a[n]全>=0的数列是不存在的,然而第四个点TLE了。所以我设置计数器数到>=300个月时直接停止,居然一发AC。
现在我还是不太清楚这道题到底应该怎么解orz
源代码:
#include <cstdio> #include <cstdlib> __int32 p1,p2,p3=0; int month=2; int main() { scanf("%d%d",&p1,&p2); while (p3>=0) { month++; if (month>300) { printf("0 0\n"); exit(0); } p3=p1-p2; p1=p2; p2=p3; } printf("%d %d\n",month,p3); return 0; }