Submission #900295

# Submission time Handle Problem Language Result Execution time Memory
900295 2024-01-08T04:28:07 Z ar88lo Parrots (IOI11_parrots) C++14
24 / 100
10 ms 1628 KB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> tovec(int a){
    vector<int> ret;
    for(int i = 0; i < 8; i++){
            ret.push_back(a%2);
            a/=2;
    }

    return ret;
}
int b [] = {3, 2, 1};
void encode(int N, int M[]){

    vector<int> v;
    for(int i = N-1; i >= 0; i--){
            vector<int> temp = tovec(M[i]);
            for(auto t:temp){
                    v.push_back(t);
            }
    }
    reverse(v.begin(), v.end());
    int ind = 0;
    int times = 0;
    for(int i = 0; i <v.size(); i+=2){
            if(v[i] == 1 && v[i+1] == 1){
                    times++;
            }

    }
    if(times > 6*N){
         send(0); send(0); send(0); send(0);
      		reverse(b, b+3);
    }
    for(int i = 0; i <v.size(); i+=2){
            if(v[i] == 1 && v[i+1] == 1){
                    for(int i = 0; i < b[0]; i++){
                      send(ind);
                    }
            }
            if(v[i] == 1 && v[i+1] == 0){
                    for(int i = 0; i < b[1]; i++){
                      send(ind);
                    }
            }
            if(v[i] == 0 && v[i+1] == 1){
                    for(int i= 0; i < b[2]; i++){
                      send(ind);
                    }
            }
            ind++;

    }
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>

using namespace std;
int vectoint(vector<int> a){
        reverse(a.begin(), a.end());
        int ret = 0;
        for(int i = 0; i < a.size(); i++){
                ret += (a[i]<<i);
        }
        return ret;
}
int b[3] = {1,2,3};
void decode(int N, int L, int X[]){

    int c[256];
    memset(c, 0, sizeof c);
    for(int i = 0; i < L; i++){
        c[X[i]]++;
    }
    if(c[0] >= 4){
            c[0] -= 4;
            reverse(b, b+3);
    }

    vector<int> ans;
    for(int i = 0; i < N * 8; i++) ans.push_back(0);


    for(int i = 0; i < 256; i++){

        if(c[i] == b[0]){
            ans[i*2] = 0;
            ans[i*2 + 1] = 1;
        }
        else if(c[i] == b[1]){
            ans[i*2] = 1;
            ans[i*2+1] = 0;
        }
        else if(c[i] == b[2]){
            ans[i*2] = 1;
            ans[i*2+1] = 1;
        }
    }
    vector<int> temp;
    for(int i = 0; i < ans.size(); i+=8){
            temp.clear();
            for(int j = i; j < i+8; j++){
                    temp.push_back(ans[j]);
            }
            output(vectoint(temp));
    }

}

Compilation message

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:28:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for(int i = 0; i <v.size(); i+=2){
      |                    ~~^~~~~~~~~
encoder.cpp:38:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |     for(int i = 0; i <v.size(); i+=2){
      |                    ~~^~~~~~~~~

decoder.cpp: In function 'int vectoint(std::vector<int>)':
decoder.cpp:9:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |         for(int i = 0; i < a.size(); i++){
      |                        ~~^~~~~~~~~~
decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:47:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     for(int i = 0; i < ans.size(); i+=8){
      |                    ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 788 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 796 KB Error : Encoded message too long
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 780 KB Error : Encoded message too long
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 796 KB Error : Encoded message too long
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 2 ms 1316 KB Output is partially correct - P = 12.000000
2 Partially correct 4 ms 1340 KB Output is partially correct - P = 12.000000
3 Partially correct 4 ms 1332 KB Output is partially correct - P = 12.000000
4 Partially correct 8 ms 1352 KB Output is partially correct - P = 12.000000
5 Partially correct 10 ms 1540 KB Output is partially correct - P = 12.000000
6 Partially correct 8 ms 1628 KB Output is partially correct - P = 12.000000
7 Partially correct 7 ms 1376 KB Output is partially correct - P = 12.000000