| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 222436 | tqbfjotld | Popcount (COCI19_popcount) | C++14 | 6 ms | 384 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int n,k;
string toStr(int t){
    if (n<64) t%=(1LL<<n);
    if (t==0) return "0";
    string base = "";
    while (t>0){
        base = ((char)('0'+t%10))+base;
        t/=10;
    }
    return base;
}
string genNum(long long interval, bool b){
    if (interval<64){
        unsigned long long t = 0;
        for (int x = 0; x<64; x++){
            if ((x/interval)%2==b){
                t += (1LL<<x);
            }
        }
        if (n<64){
            t%=(1LL<<n);
        }
        string base = "";
        if (t==0) base = "0";
        while (t>0){
            base = (char)('0'+t%10)+base;
            t/=10;
        }
        string res = base;
        int shift = 64;
        while (shift<=n){
            res = "("+res+"+("+base+"<<"+toStr(shift)+"))";
            shift += 64;
        }
        return res;
    }
    else{
        unsigned long long t = -1;
        if (n<64){
            t%=(1LL<<n);
        }
        string base = "";
        if (t==0) base = "0";
        while (t>0){
            base = (char)('0'+t%10)+base;
            t/=10;
        }
        string ans = b?"0":base;
        for (int shift = 1; shift*64<n; shift++){
            if (((shift)/(interval/64))%2==b){
                ans = "("+ans+"+("+base+"<<"+toStr(shift*64)+"))";
            }
        }
        return ans;
    }
}
int main(){
    //printf("%lld\n",1LL<<40);
    scanf("%d%d",&n,&k);
    if (k>10){
        k = 10;
    }
    vector<string> ans;
    for (int x = 0; x<k; x++){
        ans.push_back("A=(((A&"+genNum(1LL<<x,true)+")>>"+toStr(1<<x)+")+(A&"+genNum(1LL<<x,false)+"))");
    }
    printf("%d\n",ans.size());
    for (auto x : ans){
        if (x.size()>1000){
            printf("DIE\n");
        }
        printf("%s\n",x.c_str());
    }
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
