Submission #351809

#TimeUsernameProblemLanguageResultExecution timeMemory
351809kylych03Parrots (IOI11_parrots)C++14
81 / 100
43 ms1576 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
void encode(int N, int M[])
{
  	int i, xr, rs = 1e9;
  	for(int t = 0 ; t < 256; t++){
  		int cnt = 0;
		  for(i = 0 ; i < N; i++){
			int f = (M[i] ^ t);
			for(int j= 0 ; j < 8 ;j++){
				if(( f>>j )& 1){ 
					if(j%2==1)
						cnt++;
					cnt++;	
				}
			}
		}
		if(cnt  < rs){
			rs =  cnt;
			xr = t;	
		}
  	}
  	if(N <=32)
  		xr =0;
  	else{
		send(xr);
		send(xr);
		send(xr);
		send(xr);	
  	}
  	for(i = 0 ; i < N; i++)
  		M[i]^=(xr);
  	
  	if(N > 32){
  		for(i=0; i<N; i++){
			int packet=(i<<2);
			for(int j= 0 ; j < 8 ;j++){
				  if(( M[i]>>j )&1){
				  	if(j%2==1)
					send(packet+j/2);
					send(packet+j/2);
				}	
			}
		}
  	}
  	else
  	
	for(i=0; i<N; i++){
		int packet=(i<<3);
		for(int j= 0 ; j < 8 ;j++){
			  if(( M[i]>>j )&1){
				send(packet+j);
			}	
		}
	}
	
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
int res[256], f[256];
void decode(int N, int L, int X[])
{
  	int i, xrr;
  	
	for(i=0; i<256; i++){ 
	  	res[i]=0;
	  	f[i]=0;
	}
	for(int t = 0 ; t  < 256; t++){
		
		int cnt = 0 ;
		for(i=0; i < L; i++){
			if(X[i] == t)
				cnt++;	
		}
		if (cnt >=4){
			xrr = t , cnt =0;	
			for(i=0; cnt < 4; i++){
				if(X[i] == t){
					f[i]=1;
					cnt++;	
				}
			}
			break;
			
		}
	
	}
		for(i=0; i < L; i++){
		if ( f[i])
			continue;
		if(N > 32)
			res[X[i]>>2]+=( 1<<((X[i]&3)*2));
		else
	  		res[X[i]>>3]|=( 1<<(X[i]&7));	
	}
	if(N <= 32)
		xrr = 0 ;
	for(i=0; i<N; i++) {   
	    output(res[i]^xrr);
	}

}

Compilation message (stderr)

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:31:7: warning: 'xr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   31 |   send(xr);
      |   ~~~~^~~~

decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:45:12: warning: 'xrr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   45 |      output(res[i]^xrr);
      |      ~~~~~~^~~~~~~~~~~~
#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...