| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1235455 | candi_ositos | Spirale (COCI18_spirale) | C++20 | 41 ms | 328 KiB | 
#include <bits/stdc++.h>
#define up 1
#define down 2
#define right 3
#define left 4
#define cw 0
#define ccw 1
using namespace std;
int n, m;
vector <vector <int> > fm;
vector <vector <int> > cs(int x, int y, bool o, int d){
    vector <vector <int> > mtc;
    mtc.assign(n, vector <int>(m, 0));
    int mah=y, mih=y, may=x, miy=x;
    int ax=x;
    int ay=y;
    int mrw=1;
    mtc[y][x]=mrw;
    ++mrw;
    while((mih>=0 || mah<n) || (may<m || miy>=0)){
        switch(d){
            case up:
                --ay;
                if(mih>ay){
                    mih=ay;
                    if(o==cw){
                        d=right;
                    }
                    else{
                        d=left;
                    }
                }
            break;
            case down:
                ++ay;
                if(mah<ay){
                    mah=ay;
                    if(o==cw){
                        d=left;
                    }
                    else{
                        d=right;
                    }
                }
            break;
            case right:
                ++ax;
                if(may<ax){
                    may=ax;
                    if(o==cw){
                        d=down;
                    }
                    else{
                        d=up;
                    }
                }
            break;
            case left:
                --ax;
                if(miy>ax){
                    miy=ax;
                    if(o==cw){
                        d=up;
                    }
                    else{
                        d=down;
                    }
                }
            break;
        }
        if((ay>=0 && ax>=0) && (ay<n && ax<m)){
            mtc[ay][ax]=mrw;
        }
        ++mrw;
    }
    return mtc;
}
int main(){
    int k;
    cin>>n>>m>>k;
    fm.assign(n, vector<int>(m, -1));
    for(int i=0; i<k; ++i){
        int x, y, o, d=up;
        cin>>x>>y>>o;
        --x;
        --y;
        vector <vector <int> > ma=cs(y, x, o, d);
        for(int j=0; j<n; ++j){
            for(int k=0; k<m; ++k){
                if(fm[j][k]>ma[j][k] || fm[j][k]==-1){
                    fm[j][k]=ma[j][k];
                }
            }
        }
    }
    for(int i=0; i<n; ++i){
        for(int j=0; j<m; ++j){
            cout<<fm[i][j]<<" ";
        }
        cout<<"\n";
    }
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
