답안 #908668

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
908668 2024-01-16T16:17:54 Z JakobZorz 자리 배치 (IOI18_seats) C++17
11 / 100
4000 ms 103336 KB
#include"seats.h"
#include<iostream>
#include<algorithm>
using namespace std;

int w,h;
vector<int>x,y;
vector<vector<int>>mat;
vector<int>arr1,arr2; // 1 black and 3 black

int get_mat(int x,int y){
    if(x<0||x>=w||y<0||y>=h)
        return w*h;
    return mat[x][y];
}

void upd_sq(int x,int y,int mul){ // 1 for adding and -1 for removing
    vector<int>vals={get_mat(x,y),get_mat(x+1,y),get_mat(x,y+1),get_mat(x+1,y+1)};
    sort(vals.begin(),vals.end());
    /*for(int i:vals)
        cout<<i<<" ";
    cout<<endl;*/
    for(int i=vals[0];i<vals[1];i++)
        arr1[i]+=mul;
    for(int i=vals[2];i<vals[3];i++)
        arr2[i]+=mul;
}

void give_initial_chart(int H,int W,vector<int>R,vector<int>C){
    x=C;
    y=R;
    h=H;
    w=W;
    mat=vector<vector<int>>(w,vector<int>(h));
    arr1=vector<int>(h*w,0);
    arr2=vector<int>(h*w,0);
    for(int i=0;i<w*h;i++)
        mat[x[i]][y[i]]=i;
    for(int x=-1;x<w;x++)
        for(int y=-1;y<h;y++)
            upd_sq(x,y,1);
}

int swap_seats(int a,int b){
    upd_sq(x[a]-1,y[a]-1,-1);
    upd_sq(x[a]-1,y[a],-1);
    upd_sq(x[a],y[a]-1,-1);
    upd_sq(x[a],y[a],-1);
    upd_sq(x[b]-1,y[b]-1,-1);
    upd_sq(x[b]-1,y[b],-1);
    upd_sq(x[b],y[b]-1,-1);
    upd_sq(x[b],y[b],-1);
    swap(mat[x[a]][y[a]],mat[x[b]][y[b]]);
    swap(x[a],x[b]);
    swap(y[a],y[b]);
    upd_sq(x[a]-1,y[a]-1,1);
    upd_sq(x[a]-1,y[a],1);
    upd_sq(x[a],y[a]-1,1);
    upd_sq(x[a],y[a],1);
    upd_sq(x[b]-1,y[b]-1,1);
    upd_sq(x[b]-1,y[b],1);
    upd_sq(x[b],y[b]-1,1);
    upd_sq(x[b],y[b],1);
    
    int res=0;
    for(int i=0;i<w*h;i++)
        if(arr1[i]==4&&arr2[i]==0)
            res++;
    return res;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 568 KB Output is correct
2 Correct 7 ms 604 KB Output is correct
3 Correct 9 ms 604 KB Output is correct
4 Correct 7 ms 600 KB Output is correct
5 Correct 6 ms 604 KB Output is correct
6 Correct 9 ms 604 KB Output is correct
7 Correct 9 ms 568 KB Output is correct
8 Correct 7 ms 604 KB Output is correct
9 Correct 7 ms 604 KB Output is correct
10 Correct 9 ms 568 KB Output is correct
11 Correct 9 ms 604 KB Output is correct
12 Correct 7 ms 604 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 568 KB Output is correct
2 Correct 7 ms 604 KB Output is correct
3 Correct 9 ms 604 KB Output is correct
4 Correct 7 ms 600 KB Output is correct
5 Correct 6 ms 604 KB Output is correct
6 Correct 9 ms 604 KB Output is correct
7 Correct 9 ms 568 KB Output is correct
8 Correct 7 ms 604 KB Output is correct
9 Correct 7 ms 604 KB Output is correct
10 Correct 9 ms 568 KB Output is correct
11 Correct 9 ms 604 KB Output is correct
12 Correct 7 ms 604 KB Output is correct
13 Correct 147 ms 1008 KB Output is correct
14 Correct 199 ms 980 KB Output is correct
15 Correct 187 ms 1628 KB Output is correct
16 Correct 100 ms 856 KB Output is correct
17 Correct 162 ms 1216 KB Output is correct
18 Correct 97 ms 860 KB Output is correct
19 Correct 104 ms 1112 KB Output is correct
20 Correct 95 ms 856 KB Output is correct
21 Correct 98 ms 1372 KB Output is correct
22 Correct 111 ms 856 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 4035 ms 51632 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 177 ms 860 KB Output is correct
2 Correct 506 ms 4952 KB Output is correct
3 Correct 3499 ms 51496 KB Output is correct
4 Execution timed out 4017 ms 51664 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 45 ms 1996 KB Output is correct
2 Correct 52 ms 1996 KB Output is correct
3 Correct 60 ms 1996 KB Output is correct
4 Correct 150 ms 2024 KB Output is correct
5 Correct 1546 ms 3256 KB Output is correct
6 Execution timed out 4096 ms 103336 KB Time limit exceeded
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 568 KB Output is correct
2 Correct 7 ms 604 KB Output is correct
3 Correct 9 ms 604 KB Output is correct
4 Correct 7 ms 600 KB Output is correct
5 Correct 6 ms 604 KB Output is correct
6 Correct 9 ms 604 KB Output is correct
7 Correct 9 ms 568 KB Output is correct
8 Correct 7 ms 604 KB Output is correct
9 Correct 7 ms 604 KB Output is correct
10 Correct 9 ms 568 KB Output is correct
11 Correct 9 ms 604 KB Output is correct
12 Correct 7 ms 604 KB Output is correct
13 Correct 147 ms 1008 KB Output is correct
14 Correct 199 ms 980 KB Output is correct
15 Correct 187 ms 1628 KB Output is correct
16 Correct 100 ms 856 KB Output is correct
17 Correct 162 ms 1216 KB Output is correct
18 Correct 97 ms 860 KB Output is correct
19 Correct 104 ms 1112 KB Output is correct
20 Correct 95 ms 856 KB Output is correct
21 Correct 98 ms 1372 KB Output is correct
22 Correct 111 ms 856 KB Output is correct
23 Execution timed out 4035 ms 51632 KB Time limit exceeded
24 Halted 0 ms 0 KB -