Submission #900292

# Submission time Handle Problem Language Result Execution time Memory
900292 2024-01-08T04:18:29 Z ar88lo Parrots (IOI11_parrots) C++14
24 / 100
9 ms 1788 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;
    }

    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);
        }
        for(int i = 0; i <v.size(); i+=2){
                if(v[i] == 1 && v[i+1] == 1){
                        send(ind); send(ind); send(ind);
                }
                if(v[i] == 1 && v[i+1] == 0){
                        send(ind); send(ind);
                }
                if(v[i] == 0 && v[i+1] == 1){
                        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:26: 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:37:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |         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 1 ms 792 KB Output is correct
# 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 Incorrect 0 ms 784 KB Error : Encoded message too long
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 784 KB Error : Encoded message too long
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 3 ms 1576 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 1344 KB Output is partially correct - P = 12.000000
4 Partially correct 6 ms 1356 KB Output is partially correct - P = 12.000000
5 Partially correct 7 ms 1372 KB Output is partially correct - P = 12.000000
6 Partially correct 8 ms 1376 KB Output is partially correct - P = 12.000000
7 Partially correct 9 ms 1788 KB Output is partially correct - P = 12.000000