제출 #238112

#제출 시각아이디문제언어결과실행 시간메모리
238112Fasho곤돌라 (IOI14_gondola)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "gondola.h"
#define N 1000005
#define ll long long int 	
#define MP make_pair
#define pb push_back
#define ppb pop_back
#define sp " "
#define endl "\n"
#define fi first
#define se second
#define ii pair<int,int>
#define lli pair<ll,ll>
#define fast cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false)
#define fast2 freopen ("badhair.gir","r",stdin);freopen ("badhair.cik","w",stdout);
#define mod 1000000007
#define fs(x,y) for(ll i=1;i<=y;i++) cin>>x[i]
#define fo(i,x,y) for(ll i=x;i<=y;i++)
#define INF 1000000000005
#define ull unsigned long long int

using namespace std;

int ar[N];

int valid(int n, int inputSeq[])
{
	ll x=-1;
	// fo(i,0,n-1)
	// 	inputSeq[i]=ar[i];
	fo(i,1,n)
	{	
		// cout<<inputSeq[i-1]<<sp;
		ar[i]=inputSeq[i-1];
	}
	sort(ar+1,ar+n+1);
	fo(i,2,n)
		if(ar[i-1]==ar[i])
			return 0;
	fo(i,1,n)
		ar[i]=inputSeq[i-1];
	// cout<<endl;

	fo(i,1,n)
		if(ar[i]<=n)
		{
			x=i;
			break;
		}

	if(x==-1)
		return 1;
	
	// fo(i,1,n)
	// cout<<ar[i]<<sp;
	// cout<<endl;
	// cout<<x<<endl;
	int flag=0;
	fo(i,x+1,n)
	{
		if(ar[i]<=n)
		{
			if((i-x+ar[x])%n!=ar[i]%n)
				return 0;
		}
	}
	return 1;

}

//----------------------

ll tut[N],tutmac[N];

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
  	fo(i,0,n-1)
  		replacementSeq[i]=ar[i];
  	fo(i,1,n)
  		ar[i]=replacementSeq[i-1];
  		ar[0]=0;
 	ll mki=0;
  	fo(i,1,n)
  	{
		tut[ar[i]]=i;
  		if(ar[i]>ar[mki])
  			mki=i;
  	}

  	ll cnt=-1;
  	ll l=ar[mki]-n;

 	fo(i,1,n)
 		tutmac[i]=ar[i];
	ll x=0;
	ar[0]=0;
	fo(i,1,n)
		if(ar[i]<=n)
		{
			x=i;
			break;
		}
	// fo(i,1,n)
	// cout<<ar[i]<<sp;
	// cout<<endl;
	fo(i,x+1,n)
	{
		ar[i]=ar[i-1]+1;
	
		ar[i]%=n;
		if(ar[i]<=0)
			ar[i]+=n;
	}
	for(int i=x-1;i>=1;i--)
	{
		ar[i]=ar[i+1]-1;
		ar[i]%=n;
		if(ar[i]<=0)
			ar[i]+=n;
	}
	// fo(i,1,n)
	// cout<<ar[i]<<sp;
	// cout<<endl;
	// cout<<mki<<endl;
	fo(i,n+1,tutmac[mki])
	{
		// cout<<i<<sp<<tut[i]<<sp<<ar[tut[i]]<<endl;
		if(tut[i])
		{
			replacementSeq[i-n-1]=ar[tut[i]];
			ar[tut[i]]=i;
		}
		else
		{
			replacementSeq[i-n-1]=ar[mki];
			ar[mki]=i;
		}

	}
	// cout<<l<<endl;
	// fo(i,0,l-1)
	// cout<<replacementSeq[i]<<sp;
	// cout<<endl;
	if(l<0)
		return -1
	return l;

}

//----------------------

int countReplacement(int n, int inputSeq[])
{
  return -3;
}


	int bos[N];

// int main()
// {
// 	fast;
// 	ll n;
// 	cin>>n;
// 	fo(i,0,n-1)
// 	cin>>ar[i];
// 	// fo(i,0,n-1)
// 	// cout<<ar[i]<<sp;
// 	cout<<endl;
// 	replacement(n,bos,bos);
// }

컴파일 시 표준 에러 (stderr) 메시지

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:58:6: warning: unused variable 'flag' [-Wunused-variable]
  int flag=0;
      ^~~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:18:19: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
 #define fo(i,x,y) for(ll i=x;i<=y;i++)
                   ^
gondola.cpp:79:4: note: in expansion of macro 'fo'
    fo(i,1,n)
    ^~
gondola.cpp:81:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
     ar[0]=0;
     ^~
gondola.cpp:146:2: error: expected ';' before 'return'
  return l;
  ^~~~~~
gondola.cpp:90:7: warning: unused variable 'cnt' [-Wunused-variable]
    ll cnt=-1;
       ^~~