Submission #137326

#TimeUsernameProblemLanguageResultExecution timeMemory
137326NucleistSorting (IOI15_sorting)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> 
using namespace std; 
#define flash ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define debug(x) cerr << " - " << #x << ": " << x << endl;
#define debugs(x, y) cerr << " - " << #x << ": " << x << " " << #y << ": " << y << endl;
#define all(x) (x).begin(),(x).end()
#define sz(x) (ll)x.size()
#define ll long long
#define INF 1000000000
#define pb push_back
struct greateri
{
    template<class T>
    bool operator()(T const &a, T const &b) const { return a > b; }
};
int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
{
	memset(P,0,sizeof P);
	memset(Q,O,sizeof Q);
  int r = 0;
  bool ka = false;
  bool ka1 =false;
  for (int i = 0; i < N; ++i)
	{if(i!=S[i]){ka=true;break;}}
  if(!ka)return r;
  int k1 = S[0];
  int vol1 = S[1];
  S[0]=vol1;
  S[1]=k1;
  for (int i = 2; i < N; ++i)
  {
  	if((S[i]==0) || (S[i]==1))
  	{
  		int k = S[i];
  		int now = k;
  		if(S[k]==0 || S[k]==1)
  		{
  			if(S[k]==0)now--;
  			else now++;
  		}
  		int vol = S[now];
  		S[i]=vol;
  		S[now]=k;
  		P[r]=i;
  		Q[r]=now;
  		r++;
  		ka1 = false;
  		for (int j = 0; j < N; ++j)
			{if(j!=S[j]){ka1=true;break;}}
  		if(!ka1)return r;
  		k1 = S[0];
  		vol1 = S[1];
  		S[0]=vol1;
  		S[1]=k1;
  		break;
  	}
  }
  for (int i = 2; i < N; ++i)
  {
  	if((S[i]==0) || (S[i]==1))
  	{
  		int k = S[i];
  		int now = k;
  		if(S[k]==0 || S[k]==1)
  		{
  			if(S[k]==0)now--;
  			else now++;
  		}
  		int vol = S[now];
  		S[i]=vol;
  		S[now]=k;
  		P[r]=i;
  		Q[r]=now;
  		r++;
  		ka1 = false;
  		for (int j = 0; j < N; ++j)
			{if(j!=S[j]){ka1=true;break;}}
  		if(!ka1)return r;
  		k1 = S[0];
  		vol1 = S[1];
 	 	S[0]=vol1;
  		S[1]=k1;
  		break;
  	}
  }
  for (int i = 2; i < N; ++i)
  {
  	while(i!=S[i])
  	{
  		int k = S[i];
  		int vol = S[k];
  		S[i]=vol;
  		S[k]=k;
  		P[r]=i;
  		Q[r]=k;
  		r++;
  		ka1=false;
  		for (int j = 0; j < N; ++j)
			{if(j!=S[j]){ka1=true;break;}}
  		if(!ka1)return r;
  		k1 = S[0];
  		vol1 = S[1];
  		S[0]=vol1;
  		S[1]=k1;
  	}
  }
  P[r]=0;Q[r]=0;return r+1;
}
int main()
{
	int n;
	cin>>n;
	int tab[n]={0};
	int m = 30*n;
	int X[m]={0};
	int Y[m]={0};
	for (int i = 0; i < n; ++i)
	{
		cin>>tab[i];
	}
	int dol = findSwapPairs(n,tab,m,X,Y);
	cout<< dol <<endl;
	for (int i = 0; i < dol; ++i)
	{
		debugs(P[i],Q[i]);
	}
}
//code the AC sol !
// BS/queue/map

Compilation message (stderr)

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:18:20: warning: 'sizeof' on array function parameter 'P' will return size of 'int*' [-Wsizeof-array-argument]
  memset(P,0,sizeof P);
                    ^
sorting.cpp:16:62: note: declared here
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
                                                              ^
sorting.cpp:18:20: warning: argument to 'sizeof' in 'void* memset(void*, int, size_t)' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
  memset(P,0,sizeof P);
                    ^
sorting.cpp:19:11: error: 'O' was not declared in this scope
  memset(Q,O,sizeof Q);
           ^
sorting.cpp:19:20: warning: 'sizeof' on array function parameter 'Q' will return size of 'int*' [-Wsizeof-array-argument]
  memset(Q,O,sizeof Q);
                    ^
sorting.cpp:16:70: note: declared here
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
                                                                      ^
sorting.cpp:19:20: warning: argument to 'sizeof' in 'void* memset(void*, int, size_t)' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
  memset(Q,O,sizeof Q);
                    ^
sorting.cpp:16:37: warning: unused parameter 'M' [-Wunused-parameter]
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
                                     ^
sorting.cpp:16:45: warning: unused parameter 'X' [-Wunused-parameter]
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
                                             ^
sorting.cpp:16:53: warning: unused parameter 'Y' [-Wunused-parameter]
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
                                                     ^
sorting.cpp: In function 'int main()':
sorting.cpp:121:37: error: too few arguments to function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)'
  int dol = findSwapPairs(n,tab,m,X,Y);
                                     ^
sorting.cpp:16:5: note: declared here
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
     ^~~~~~~~~~~~~
sorting.cpp:125:10: error: 'P' was not declared in this scope
   debugs(P[i],Q[i]);
          ^
sorting.cpp:5:53: note: in definition of macro 'debugs'
 #define debugs(x, y) cerr << " - " << #x << ": " << x << " " << #y << ": " << y << endl;
                                                     ^
sorting.cpp:125:15: error: 'Q' was not declared in this scope
   debugs(P[i],Q[i]);
               ^
sorting.cpp:5:79: note: in definition of macro 'debugs'
 #define debugs(x, y) cerr << " - " << #x << ": " << x << " " << #y << ": " << y << endl;
                                                                               ^