QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#414535#2921. Land EqualityTheSleepyDevil#WA 0ms3612kbC++142.9kb2024-05-19 07:38:152024-05-19 07:38:15

Judging History

你现在查看的是最新测评结果

  • [2024-05-19 07:38:15]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3612kb
  • [2024-05-19 07:38:15]
  • 提交

answer

    /*
     Hell, 'til I reach Hell, I ain't scared
     Mama checkin' in my bedroom, I ain't there
                                                */
    #include<bits/stdc++.h>
    #include <ext/pb_ds/assoc_container.hpp>
    #include <ext/pb_ds/tree_policy.hpp>
    using namespace __gnu_pbds;
    using namespace std;

    #define Major  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    #define TxtIO   freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
    #define read(a,n) for(int i = 0 ; i<n ; i++) cin>>a[i];
    #define write(a) for(auto x : a) cout<<x<<" ";
    #define int long long
    #define pb push_back
    #define all(a)  a.begin(),a.end()
    #define el "\n"

    typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

    const int inf=4e18;

    int dx[]={1,0,-1,0,1,1,-1,-1};
    int dy[]={0,1,0,-1,1,-1,1,-1};

    const int mod=1e9+7;
    const int MAX =1e6+7;

   // ---------------------------Function----------------------------------//

    void TestCake(){
        int n,m;
        cin>>n>>m;
        set<int>st;
        int arr[n+1][m+1];
        map<int,int>mp;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                cin>>arr[i][j];
                mp[arr[i][j]]++;
                st.insert(arr[i][j]);
            }
        }
        //0 1 2
        //2 1 2
        if(n!=1 && m!=1){
            if(mp[0]>1){
                cout<<0<<el;
            }
            else if(mp[0]&&mp[1]){
                cout<<1;
            }
            else if(mp[0]&&mp[2]){
                cout<<2;
            }
            else if(mp[2]==1){
                cout<<1<<el;
            }
            else if(mp[2]){
                int left=mp[2]/2;
                int right=(mp[2]+1)/2;
                int first=(1LL<<left);
                int second=(1LL<<right);
                cout<<(second-first);
            }
            else{
                cout<<0;
            }
        }
        else{
            vector<int>cur;
            for(int i=0;i<n;i++){
                for(int j=0;j<m;j++){
                    cur.pb(arr[i][j]);
                }
            }
            int ans=inf;
            for(int i=0;i<cur.size();i++){
                int first=1,second=1;
                for(int j=0;j<=i;j++){
                    first*=cur[j];
                }
                for(int j=i+1;j<n*m;j++){
                    second*=cur[j];
                }
                ans=min(abs(first-second),ans);
            }
            cout<<ans;
        }
    }
    //------------------------------Main---------------------------//
    signed main(){
        Major
        int T = 1;
//        cin >> T;
        while(T--){
            TestCake();
        //       cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
        }
        return 0;
    }

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3540kb

input:

1 2
0 1

output:

1

result:

ok single line: '1'

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3612kb

input:

1 2
0 2

output:

1

result:

wrong answer 1st lines differ - expected: '2', found: '1'