Submission #110775

#TimeUsernameProblemLanguageResultExecution timeMemory
110775autumn_eelSpace Pirate (JOI14_space_pirate)C++14
10 / 100
61 ms512 KiB
#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
using namespace std;
typedef pair<int,int>P;
typedef long long ll;

int a[200000];
int ans[200000];

int main(){
	int n;ll K;cin>>n>>K;
	if(n>100)abort();
	rep(i,n){
		scanf("%d",&a[i]);a[i]--;
	}
	rep(i,n){
		int p=a[i];
		rep(j,n){
			a[i]=j;
			int x=0,cnt=0;
			map<int,int>mp;
			mp[x]=0;
			int b=-1;
			while(cnt<K){
				x=a[x];
				cnt++;
				if(mp.count(x)){
					b=cnt-mp[x];
					break;
				}
				else mp[x]=cnt;
			}
			ll d=(K-cnt)%b;
			rep(k,d)x=a[x];
			ans[x]++;
		}
		a[i]=p;
	}
	rep(i,n){
		printf("%d\n",ans[i]);
	}
}

Compilation message (stderr)

space_pirate.cpp: In function 'int main()':
space_pirate.cpp:14:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&a[i]);a[i]--;
   ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...