Submission #896457

# Submission time Handle Problem Language Result Execution time Memory
896457 2024-01-01T13:36:03 Z anton Parrots (IOI11_parrots) C++17
81 / 100
3 ms 1336 KB
#include "encoder.h"
#include "encoderlib.h"
#include<bits/stdc++.h>

using namespace std;

void encode(int N, int M[])
{
  if(N<=32){
    int id = 0;
    for(int i=0; i<N; i++){
      for(int j = 0; j<8; j++){
        if((M[i] & (1<<j))!=0){
          send(id);
        }
        id++;
      }

    }
  }
  else{
    int nb1 = 0;
    for(int i=0; i<N; i++){
      for(int j = 0; j<8; j++){
        if((M[i] & (1<<j))!=0){
          nb1++;
        }
      }
    }
    //cout<<nb1<<endl;
    if(nb1<N*4){
      //cout<<"no swap"<<endl;
      int id = 0;
      for(int i=0; i<N; i++){
        for(int j = 0; j<8; j++){
          if((M[i] & (1<<j))!=0){
            send(id);
          }
          id++;
        }

      }
    }
    else{
      vector<int>mes(N);
      for(int i = 0; i<N; i++){
        mes[i] = M[i]^((1<<8)-1);
      }
      int id = 0;
      for(int i=0; i<N; i++){
        for(int j = 0; j<8; j++){
          if((mes[i] & (1<<j))!=0){
            //cout<<id<<endl;
            send(id);
          }
          id++;
        }
      }

      send((N-1)*8 + 7);
      send((N-1)*8 + 7);
    }
  }
}
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>

using namespace std;

void decode(int N, int L, int X[])
{
  //cout<<"L "<<L<<endl;
  vector<int> v(L);

  for(int i = 0; i<L; i++){
    v[i] = X[i];
  }
  sort(v.begin(), v.end());
  vector<int> res(N);
  bool swaping = false;
  for(int i = 0; i<L; i++){
    if(i>0 && v[i]==v[i-1]){
      swaping = true;
    }
    res[v[i]/8]^=(1<<(v[i]%8));
  }
  for(auto e: res){
    //cout<<bitset<8>(e)<<endl;
  }

  if(swaping){
    //cout<<"swapping"<<endl;
    for(int i = 0; i<N; i++){
      res[i] ^= (1<<8)-1;
    }
  }

  for(auto e: res){
    //cout<<e<<endl;
  }

  for(auto e: res){
    output(e);
  }
}

Compilation message

decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:24:12: warning: unused variable 'e' [-Wunused-variable]
   24 |   for(auto e: res){
      |            ^
decoder.cpp:35:12: warning: unused variable 'e' [-Wunused-variable]
   35 |   for(auto e: res){
      |            ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1048 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1300 KB Output is correct
2 Correct 1 ms 1308 KB Output is correct
3 Correct 1 ms 1308 KB Output is correct
4 Correct 3 ms 1320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1312 KB Output is correct
2 Correct 2 ms 1300 KB Output is correct
3 Correct 1 ms 1296 KB Output is correct
4 Correct 1 ms 1312 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1304 KB Output is correct
2 Correct 2 ms 1312 KB Output is correct
3 Correct 2 ms 1140 KB Output is correct
4 Correct 3 ms 1336 KB Output is correct
5 Correct 2 ms 1332 KB Output is correct
6 Correct 3 ms 1328 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 1312 KB Output is partially correct - P = 8.000000
2 Partially correct 2 ms 1336 KB Output is partially correct - P = 8.000000
3 Incorrect 0 ms 796 KB Error : Bad encoded integer
4 Incorrect 0 ms 788 KB Error : Bad encoded integer
5 Incorrect 0 ms 784 KB Error : Bad encoded integer
6 Incorrect 1 ms 784 KB Error : Bad encoded integer
7 Incorrect 0 ms 792 KB Error : Bad encoded integer