Submission #947342

# Submission time Handle Problem Language Result Execution time Memory
947342 2024-03-15T22:28:42 Z MarwenElarbi Bitwise (BOI06_bitwise) C++17
0 / 100
116 ms 50516 KB
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#define vi vector<int>
#define ve vector
#define ll long long
#define vl vector<ll>
#define vll vector<pair<ll,ll>>
#define onbit __builtin_popcount
#define ii pair<int,int>
#define vvi vector<vi>
#define vii vector<ii>
#define gii greater<ii>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define INF 1e18
#define eps 1e-7
#define eps1 1e-2
#define optimise ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define MAX_A 1e5+5
using namespace std;
const ll MOD = 1e9+7;
const int nax = 1e5+5;
const int MAX_VAL = 1e6+1;
double PI=3.14159265359;
int arx[8]={1,0,0,-1,-1,-1, 1, 1};
int ary[8]={0,1,-1, 0, 1,-1,-1, 1};
void setIO(string s) {
    freopen((s + ".in").c_str(), "r", stdin);
    freopen((s + ".out").c_str(), "w", stdout);
}
vector<ii> adj[nax];
int main(){
    optimise;
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
    int n,k;
    cin>>n>>k;
    int tab[k];
    for (int i = 0; i < k; ++i)
    {
        cin>>tab[i];
    }
    int a[n];
    int b[n];
    for (int i = 0; i < n; ++i)
    {
        cin>>a[i]>>b[i];
    }
    int ans=0;
    for (int i = 30; i >= 0; --i)
    {
        int cnt=0;
        bool test=true;
        for (int j = 0; j < k; ++j)
        {
            int cur=tab[j];
            //cout <<cur<<endl;
            bool nabba=false;
            while(cur--){
                //cout <<a[cnt]<<" "<<b[cnt]<<" "<<i<<endl;
                if(b[cnt]-a[cnt]>=(1<<i)){
                    //cout <<"hey"<<endl;
                    nabba=true;
                }else if((a[cnt]&(1<<i))||(b[cnt]&(1<<i))) {
                   // cout <<"hey"<<endl;
                    nabba=true;
                }
                cnt++;
            }
            test&=nabba;
        }
        //cout <<test<<endl;
        if(test){
            ans+=(1<<i);  
            cout <<"hey"<<" "<<(1<<i)<<endl;
        }
        cout <<i<<endl;
        cnt=0;
        for (int j = 0; j < k; ++j)
        {
            int cur=tab[j];
            bool nabba=false;
            while(cur--){
                if(nabba){
                    cout <<a[cnt]<<" "<<b[cnt]<<endl;
                    cnt++;
                    continue;
                }
                if(a[cnt]&(1<<i)||b[cnt]&(1<<i)){
                    if(b[cnt]-a[cnt]<(1<<i)||test){
                        //cout <<a[cnt]<<" "<<b[cnt]<<endl;
                        nabba=true;
                        b[cnt]-=(1<<i);
                        a[cnt]-=(1<<i);
                        a[cnt]=max(a[cnt],0);
                        b[cnt]=max(b[cnt],0);
                    }
                }
                cout <<a[cnt]<<" "<<b[cnt]<<endl;
                cnt++;
            }
            
        }
    }
    cout <<ans<<endl;
}

Compilation message

bitwise.cpp: In function 'void setIO(std::string)':
bitwise.cpp:31:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |     freopen((s + ".in").c_str(), "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitwise.cpp:32:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |     freopen((s + ".out").c_str(), "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitwise.cpp: In function 'int main()':
bitwise.cpp:38:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   38 |         freopen("input.txt", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
bitwise.cpp:39:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |         freopen("output.txt", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 96 ms 50516 KB Output isn't correct
2 Incorrect 93 ms 50320 KB Output isn't correct
3 Incorrect 95 ms 50172 KB Output isn't correct
4 Incorrect 93 ms 50320 KB Output isn't correct
5 Incorrect 93 ms 50320 KB Output isn't correct
6 Incorrect 93 ms 50264 KB Output isn't correct
7 Incorrect 100 ms 50312 KB Output isn't correct
8 Incorrect 93 ms 50324 KB Output isn't correct
9 Incorrect 98 ms 50260 KB Output isn't correct
10 Incorrect 93 ms 50268 KB Output isn't correct
11 Incorrect 98 ms 50244 KB Output isn't correct
12 Incorrect 116 ms 50268 KB Output isn't correct
13 Incorrect 93 ms 50256 KB Output isn't correct
14 Incorrect 94 ms 50276 KB Output isn't correct
15 Incorrect 92 ms 50304 KB Output isn't correct
16 Incorrect 106 ms 50316 KB Output isn't correct
17 Incorrect 92 ms 50316 KB Output isn't correct
18 Incorrect 93 ms 50256 KB Output isn't correct
19 Incorrect 92 ms 50264 KB Output isn't correct
20 Incorrect 98 ms 50324 KB Output isn't correct