Submission #1145876

#TimeUsernameProblemLanguageResultExecution timeMemory
1145876SmuggingSpunParrots (IOI11_parrots)C++20
0 / 100
2097 ms38440 KiB
#include "encoder.h" #include "encoderlib.h" #include<bits/stdc++.h> using namespace std; string add(string a, string b){ if(a.size() > b.size()){ swap(a, b); } a = string(int(b.size()) - int(a.size()), '0') + a; string ans = ""; int carry = 0; for(int i = int(a.size()) - 1; i > -1; i--){ int sum = a[i] + b[i] - 96 + carry; if(sum > 9){ sum -= 10; carry = 1; } else{ carry = 0; } ans += char(sum + 48); } if(carry == 1){ ans += '1'; } while(ans.size() > 1 && ans.back() == '0'){ ans.pop_back(); } return ans; } string sub(string a, string b){ b = string(int(a.size()) - int(b.size()), '0') + b; string ans = ""; int carry = 0; for(int i = int(a.size()) - 1; i > -1; i--){ int d = a[i] - b[i] - carry; if(d < 0){ d += 10; carry = 1; } else{ carry = 0; } ans += char(d + 48); } while(ans.size() > 1 && ans.back() == '0'){ ans.pop_back(); } return ans; } string mul(string a, int b){ string ans = "0"; for(int i = int(a.size()) - 1; i > -1; i--){ ans = add(ans, to_string((a[i] - 48) * b) + string(int(a.size()) - i - 1, '0')); } return ans; } bool is_smaller(string a, string b){ if(a.size() != b.size()){ return a.size() < b.size(); } for(int i = 0; i < a.size(); i++){ if(a[i] != b[i]){ return a[i] < b[i]; } } return false; } const int lim = 580; string pw_256[lim], Ckn[lim][lim]; void encode(int N, int M[]){ for(int i = 0; i < lim; i++){ Ckn[0][i] = "1"; for(int j = 1; j <= i; j++){ Ckn[j][i] = add(Ckn[j - 1][i], Ckn[j - 1][i - 1]); } for(int j = i + 1; j < lim; j++){ Ckn[j][i] = "0"; } } pw_256[0] = "1"; for(int i = 1; i < lim; i++){ pw_256[i] = mul(pw_256[i - 1], 256); cout << i << " " << pw_256[i] << endl; } if(N <= 32){ for(int i = 0; i < N; i++){ for(int j = 0; j < 8; j++){ if(1 << j & M[i]){ send((i << 3) + j); } } } return; } }
#include "decoder.h" #include "decoderlib.h" #include<bits/stdc++.h> using namespace std; //string add(string a, string b){ // if(a.size() > b.size()){ // swap(a, b); // } // a = string(int(b.size()) - int(a.size()), '0') + a; // string ans = ""; // int carry = 0; // for(int i = int(a.size()) - 1; i > -1; i--){ // int sum = a[i] + b[i] - 96 + carry; // if(sum > 9){ // sum -= 10; // carry = 1; // } // else{ // carry = 0; // } // ans += char(sum + 48); // } // if(carry == 1){ // ans += '1'; // } // while(ans.size() > 1 && ans.back() == '0'){ // ans.pop_back(); // } // return ans; //} //string sub(string a, string b){ // b = string(int(a.size()) - int(b.size()), '0') + b; // string ans = ""; // int carry = 0; // for(int i = int(a.size()) - 1; i > -1; i--){ // int d = a[i] - b[i] - carry; // if(d < 0){ // d += 10; // carry = 1; // } // else{ // carry = 0; // } // ans += char(d + 48); // } // while(ans.size() > 1 && ans.back() == '0'){ // ans.pop_back(); // } // return ans; //} //string mul(string a, int b){ // string ans = "0"; // for(int i = int(a.size()) - 1; i > -1; i--){ // ans = add(ans, to_string((a[i] - 48) * b) + string(int(a.size()) - i - 1, '0')); // } // return ans; //} //bool is_smaller(string a, string b){ // if(a.size() != b.size()){ // return a.size() < b.size(); // } // for(int i = 0; i < a.size(); i++){ // if(a[i] != b[i]){ // return a[i] < b[i]; // } // } // return false; //} void decode(int N, int L, int X[]){ if(N <= 32){ vector<bool>bit(N << 3, false); for(int i = 0; i < L; i++){ bit[X[i]] = true; } for(int i = 0; i < N; i++){ int ans = 0; for(int j = 0; j < 8; j++){ if(bit[(i << 3) + j]){ ans |= 1 << j; } } output(ans); } return; } }
#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...