Submission #137384

#TimeUsernameProblemLanguageResultExecution timeMemory
137384NucleistSorting (IOI15_sorting)C++17
0 / 100
3 ms380 KiB
#include <bits/stdc++.h> 
#include <sorting.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,0,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;
  	}
  }
  R++;
  P[R]=0;Q[R]=0;return R;
}

//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:19:21: warning: 'sizeof' on array function parameter 'P' will return size of 'int*' [-Wsizeof-array-argument]
   memset(P,0,sizeof P);
                     ^
sorting.cpp:17:62: note: declared here
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
                                                              ^
sorting.cpp:19:21: 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:20:21: warning: 'sizeof' on array function parameter 'Q' will return size of 'int*' [-Wsizeof-array-argument]
   memset(Q,0,sizeof Q);
                     ^
sorting.cpp:17:70: note: declared here
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
                                                                      ^
sorting.cpp:20:21: 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,0,sizeof Q);
                     ^
sorting.cpp:17: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:17: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:17:53: warning: unused parameter 'Y' [-Wunused-parameter]
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int  P[],int Q[])
                                                     ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...