5465. 指针运动 - AcWing题库
暴力枚举TLE:
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 200010;
int n;
int a[N];
int main(){
cin>>n;
for(int i = 1; i<=n; i++) cin>>a[i];
sort(a, a+n);
int k = 1;
while(a[k]>0){
for(int i = 1; i<=n; i++) a[i]--;
k++;
if(k==n+1) k = 1;
}
cout<<k;
return 0;
}
AC代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010, INF = 2e9;
int n;
int w[N];
int main()
{
scanf("%d", &n);
int t = INF;
for (int i = 0; i < n; i ++ )
{
scanf("%d", &w[i]);
t = min(t, w[i]);
}
while (w[t % n] - t > 0) t ++ ;
printf("%d\n", t % n + 1);
return 0;
}