제출 #1310894

#제출 시각아이디문제언어결과실행 시간메모리
1310894theiuliusData Transfer (IOI19_transfer)C++20
0 / 100
5 ms1720 KiB
#include "transfer.h" #include<bits/stdc++.h> using namespace std; #define ll long long #define ll long long #define ff first #define ss second #define pb push_back using namespace std; std::vector<int> get_attachment(std::vector<int> a) { vector<int> v; int n = a.size(); for (int k = 5; k >= 0; k--){ int i = 0; int ans = 0; while (i < n){ int j = i; for (j = i; j < i + (1 << k); j++){ ans ^= a[j]; } i = j + (1 << k); } v.pb(ans); } int ans = 0; for (int i = 0; i < n; i++){ ans ^= a[i]; } v.pb(ans); // for (auto h : v){ // cout << h; // } // cout << endl; return v; } std::vector<int> retrieve(std::vector<int> a) { int n = a.size() - 7; int K = 7; int ans0 = 0; for (int i = 0; i < n; i++){ // cout << a[i]; ans0 ^= a[i]; } // cout << endl; int l = 1, r = 63; int ans = 0; for (int k = 5; k >= 0; k--){ int i = 0; int ans = 0; while (i < n){ int j = i; for (j = i; j < i + (1 << k); j++){ // cout << k << " " << j << endl; ans ^= a[j]; } i = j + (1 << k); } // cout << l << " " << r << endl; if (a[n + (5 - k)] != ans){ // pirvel naxevarshia if (ans0 != a[n + K - 1]){ // n-shia corrupted r = (l + r - 1) / 2; }else{ a[n + (5 - k)] ^= 1; return a; } }else{ // meore naxevarshia if (ans0 != a[n + K - 1]){ // n-shia corrupted l = (l + r + 1) / 2; } } } // cout << l << " " << r << endl; a[r] ^= 1; a.pop_back(); a.pop_back(); a.pop_back(); a.pop_back(); a.pop_back(); a.pop_back(); a.pop_back(); return a; // 011001010110110110100111110011010111111111111000101011100101001 // 011001010110110110100111110011010111111111111000101011100101001 } //static inline string run_scenario() { // int c; // cin >> c; // if (c < -1) // return "invalid corruption index"; // string source_str; // cin >> source_str; // const int N = source_str.size(); // const int max_attachment_size = 2*N; // vector<int> source; // for (int i=0; i<N; i++) // source.push_back(source_str[i]-'0'); // // vector<int> attachment = get_attachment(source); // if (int(attachment.size()) > max_attachment_size) // return "attachment too large"; // for (int x : attachment) // if (x != 0 && x != 1) // return "invalid attachment integer value"; // // vector<int> data(source); // data.insert(data.end(), attachment.begin(), attachment.end()); // // if (c >= int(data.size())) // return "invalid corruption index"; // // if (c >= 0) // data[c] = 1-data[c]; // // vector<int> result_source = retrieve(data); // //// for (int h : source){ //// cout << h; //// } //// cout << endl; //// for (int h : result_source){ //// cout << h; //// } //// cout << endl; // if (source != result_source) // return "wrong source retrieval"; // // return string("OK K=")+to_string(attachment.size()); //} //main() { // int T; // cin >> T; // for (int scenario = 0; scenario < T; scenario++) { // string result = run_scenario(); // cout << "scenario #" << scenario << ": " << result << endl; // } // return 0; //}

컴파일 시 표준 에러 (stderr) 메시지

grader.cpp: In instantiation of 'void shuffle(std::vector<T>&) [with T = Scenario]':
grader.cpp:200:10:   required from here
grader.cpp:28:23: warning: 'void std::random_shuffle(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<Scenario*, vector<Scenario> >]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   28 |         random_shuffle(v.begin(), v.end());
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from grader.cpp:8:
/usr/include/c++/13/bits/stl_algo.h:4581:5: note: declared here
 4581 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |     ^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...