//2008.5.15 13:49:58 Accepted 2656 C++ 00:04.35 916K 天将降大任于我
//能够作为第一个起始的城市必须具备的条件:从这个城市走下去,每一个城市都必须有足够的油,
//以保证能够走完一圈,否则如果中途有哪个城市的油不足以够到下一个城市,则这次的作为开始的城市
//不能作为第一个起始城市
//主要方法是采用了回旋法,即(i+j)%n。i表示起始的城市,(i+j)%n表示自起始的城市开始往下走,转一圈。
//即当i=1时,是从第一个城市开始,然后j每加一次,就是向下走一个城市,到j>n时,就转回到开始,直到一个圈结束
#include<iostream>
using namespace std;
struct code
{
int x;
int y;
}a[10001];
int main()
{
int n,i,s,j;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++) scanf("%d%d",&a[i].x,&a[i].y);
for(i=0;i<n;i++)
{
for(j=s=0;j<n;j++)
{
s+=a[(i+j)%n].x-a[(i+j)%n].y;
if(s<0) break;
}
if(j>=n) break;
}
if(i<n) printf("%d\n",i);
else printf("impossible\n");
}
return 0;
}
心难泰,世风坏,旧时正气今何在?正义寡,人情薄,闻道虽多,茅塞不开。怪!怪!怪!
空等待,几多载,冲出重围人心快!暴雨打,狂风袭,任他折磨,此志难改。耐!耐!耐!