QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#412813#677. Koala GameASGA_RedSea#Compile Error//C++204.6kb2024-05-16 19:47:432024-05-16 19:47:43

Judging History

This is the latest submission verdict.

  • [2024-05-16 19:47:43]
  • Judged
  • [2024-05-16 19:47:43]
  • Submitted

answer

/**

                                    * بسم الله الرحمن الرحيم *

                ﴾ رَبِّ اشْرَحْ لِي صَدْرِي * وَيَسِّرْ لِي أَمْرِي * وَاحْلُلْ عُقْدَةً مِّن لِّسَانِي * يَفْقَهُوا قَوْلِي ﴿

*/

/// author : "ASGA"

#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

using namespace std;

int r,c;
vector <vector <int>> a;

vector <pair <int,int>> ll,rr,lr;


void init(int R,int C,int sr,int sc,int m,char* s){
    r = R;c = C;

    a = vector <vector <int>> (r,vector <int> (c,0));
    sr--;sc--;
    for(int i = 0;i < m;i++){
        a[sr][sc] = 1;
        if(s[i] == 'N')sr--;
        else if(s[i] == 'S')sr++;
        else if(s[i] == 'E')sc++;
        else sc--;
    }
    a[sr][sc] = 1;

    if(r == 2){
        for(int i = 0;i < c;i++){
            if(a[0][i] == 0){
                int j = i;
                while(j < c && a[0][j] == 0)j++;
                ll.push_back({i,j - 1});
                i = j - 1;
            }
        }
        for(int i = 0;i < c;i++){
            if(a[1][i] == 0){
                int j = i;
                while(j < c && a[1][j] == 0)j++;
                rr.push_back({i,j - 1});
                i = j - 1;
            }
        }

        for(int i = 0;i < c;i++){
            if(a[0][i] == 0 || a[1][i] == 0){
                int j = i + 1;
                while(j < c && ((a[0][j] == 0 && a[0][j - 1] == 0) || (a[1][j] == 0 && a[1][j - 1] == 0)))j++;

                lr.push_back({i,j - 1});
                i = j - 1;
            }
        }
    }

    return;
}

vector <vector <int>> v;

int ar,ac,br,bc;

vector <int> dx = {0,0,1,-1},dy = {1,-1,0,0};

void calc(int i,int j){
    v[i][j] = 1;
    for(int k = 0;k < 4;k++){
        int x = i + dx[k];
        int y = j + dy[k];

        if(ar <= x && x <= br && ac <= y && y <= bc && v[x][y] == 0 && a[x][y] == 0)calc(x,y);
    }
}

int colour(int AR,int AC,int BR,int BC){
    ar = AR;ac = AC;br = BR;bc = BC;
    ar--;ac--;br--;bc--;

    int ans = 0;

    if(r == 2){
        if(ar == 0 && br == 1){
            int i = lower_bound(lr.begin(),lr.end(),make_pair(ac,0)) - lr.begin();
            int j = upper_bound(lr.begin(),lr.end(),make_pair(bc,0)) - lr.begin();
            j--;

            ans = max(ans,j - i + 1);
            if(i > 0 && ac <= lr[i - 1].second && lr[i - 1].second <= bc)ans++;
        }
        else if(ar == 0){
            int i = lower_bound(ll.begin(),ll.end(),make_pair(ac,0)) - ll.begin();
            int j = upper_bound(ll.begin(),ll.end(),make_pair(bc,0)) - ll.begin();
            j--;

            ans = max(ans,j - i + 1);
            if(i > 0 && ac <= ll[i - 1].second && ll[i - 1].second <= bc)ans++;
        }
        else{
            int i = lower_bound(rr.begin(),rr.end(),make_pair(ac,0)) - rr.begin();
            int j = upper_bound(rr.begin(),rr.end(),make_pair(bc,0)) - rr.begin();
            j--;

            ans = max(ans,j - i + 1);
            if(i > 0 && ac <= rr[i - 1].second && rr[i - 1].second <= bc)ans++;
        }
    }
    else{
        v = vector <vector <int>> (r,vector <int> (c,0));

        for(int i = 0;i < r;i++){
            for(int j = 0;j < c;j++){
                if(ar <= i && i <= br && ac <= j && j <= bc && v[i][j] == 0 && a[i][j] == 0){
                    ans++;
                    calc(i,j);
                }
            }
        }
    }

    return ans;
}



/*
void playRound(int *a,int *b);

int minValue(int n,int w){
    int b[n]{},r[n]{};
    for(int i = 0;i < n;i++)b[i] = r[i] = 0;

    b[0] = 1;
    playRound(b,r);
    if(r[0] <= 1)return 0;

    for(int i = 1;i < n;i++){
        if(r[i] == 0)return i;
    }
}

int maxValue(int n,int w){
    ;
}

bool greaterValue(int n,int w){
    int b[n + 1];
    int r[n + 1];

    for(int i = 0;i < n;i++)b[i] = r[i] = 0;

    ;
    playRound(b,r);
    return (r[0] == w ? 0 : 1);
}

void allValues(int n,int w,int p[]){
    for(int i = 0;i < n;i++)p[i] = i + 1;
}

*/




//signed main(){
//    ios_base::sync_with_stdio(0);cin.tie();
//
//    int n,m,k;cin >> n >> m >> k;
//    vector <vector <pair <int,int>>> a(n,vector <pair <int,int>> (k));
//    for(auto& i : a){
//        for(auto& [j,k] : i)cin >> j >> k;
//    }
//
//    vector <vector <pair <int,int>>> g(n + 1);
//    while(m--){
//        int u,v,w;cin >> u >> v >> w;
//        g[u].push_back({v,w});
//    }
//
//    ;
//
//    return 0;
//}

Details

implementer.cpp: In function ‘void grader()’:
implementer.cpp:138:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  138 |     fscanf(fin, "%d %d %d",&F,&G,&maxQueries);
      |     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
implementer.cpp: In function ‘void runGame(int)’:
implementer.cpp:89:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   89 |     fscanf(fin,"%d %d",&N,&W);
      |     ~~~~~~^~~~~~~~~~~~~~~~~~~
implementer.cpp:91:15: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   91 |         fscanf(fin,"%d",&P[i]);
      |         ~~~~~~^~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccHx1Hj7.o: in function `runGame(int)':
implementer.cpp:(.text+0x127): undefined reference to `minValue(int, int)'
/usr/bin/ld: implementer.cpp:(.text+0x15d): undefined reference to `allValues(int, int, int*)'
/usr/bin/ld: implementer.cpp:(.text+0x1b7): undefined reference to `maxValue(int, int)'
/usr/bin/ld: implementer.cpp:(.text+0x1e7): undefined reference to `greaterValue(int, int)'
collect2: error: ld returned 1 exit status