996B - World Cup
在一些小题中 利用好知识可以加快算法
方法是:
( a+x)%k==c;
(a+x)%k==c%k;
∴X==((c-a)%k+k)%k; 中间之所以+k 为防止负数
#define inf 0x3f3f3f3f
#define en '\n'
#define maxn 112345
#define mod 9901
using namespace std;
ll d[maxn];
//ll aa[maxn<<10]
void rd(ll&x) {
x=0;
ll f=1;
char s;
while(s>'9'||s<'0') {
if(s=='-')f=-1;
s=getchar();
}
while(s>='0'&&s<='9') {
x=x*10+s-48;
s=getchar();
}
x*=f;
}
ll a[maxn];
ll n;
int main() {
#ifdef local
freopen("input2.txt","r",stdin);
#endif // local
cin>>n;
for(ll i=0;i<n;i++){
rd(a[i]);
}
ll cos=inf;
ll k=n;
for(ll i=0;i<n;i++){
ll x=((i-a[i])%k+k)%k;
a[i]=a[i]+x;
}
ll ind=0;
//ll ind=0;
for(ll i=0;i<n;i++){
if(a[ind]>a[i]){
ind=i;
}
}
cout<<ind+1<<en;
return 0;
}