Submission #960282

# Submission time Handle Problem Language Result Execution time Memory
960282 2024-04-10T07:13:01 Z Wansur Mars (APIO22_mars) C++17
6 / 100
6 ms 4864 KB
#include <bits/stdc++.h>
#define f first
#define s second
#define ent '\n'
//#define int long long

#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3")

const int dx[]={-1, 1, 0, 0, 0};
const int dy[]={0, 0, 1, -1, 0};
typedef long long ll;
using namespace std;
const int mx=50+12;
const int mod=998244353;
const bool T=1;

bool used[mx][mx];
int c[mx][mx];

void dfs(int x,int y,int n){
    used[x][y]=1;
    for(int i=0;i<4;i++){
        int x1=dx[i]+x;
        int y1=dy[i]+y;
        if(x1>=0 && y1>=0 && x1<n && y1<n && !used[x1][y1]){
            dfs(x1, y1, n);
        }
    }
}

string gn(int n) {
    int cnt = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            used[i][j] ^= 1;
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (!used[i][j]){
                dfs(i, j, n);
                cnt++;
            }
        }
    }
    string ans="";
    for(int i=0;i<20;i++){
        if((cnt&(1<<i))){
            ans+='1';
        }
        else{
            ans+='0';
        }
    }
    while(ans.size()<100){
        ans+='0';
    }
    return ans;
}

pair<int,int> opt(int l,int r,int k, int n){
    return {l * (2 * n + 1) / (2 * (n - k) + 1), (r + 1) * (2 * n + 1) / (2 * (n - k) + 1) - 1};
}

void upd(string s,int i,int j,int k, int n){
    auto [tli, tri] = opt(i, i+2*k, k, n);
    auto [tlj, trj] = opt(j, j+2*k, k, n);
    int pos=0;
    for(int i=tli;i<=tri;i++){
        for(int j=tlj;j<=trj;j++){
            used[i][j] = (s[pos] == '1');
            pos++;
        }
    }
}

string process(vector<vector<string> > a,int x,int y,int k,int n){
    k++;
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            upd(a[i][j], x+i, y+j, k-1, n);
        }
    }
    auto [tli, tri] = opt(x, x+2*k, k, n);
    auto [tlj, trj] = opt(y, y+2*k, k, n);
    string ans="";
    for(int i=tli;i<=tri;i++){
        for(int j=tlj;j<=trj;j++){
            ans += char(used[i][j] + '0');
        }
    }
    while(ans.size() < 100){
        ans+='0';
    }
    if(n==k){
        return gn(n * 2 + 1);
    }
    return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 4468 KB Output is correct
2 Correct 6 ms 4244 KB Output is correct
3 Correct 3 ms 4084 KB Output is correct
4 Correct 4 ms 4224 KB Output is correct
5 Correct 5 ms 4292 KB Output is correct
6 Correct 4 ms 4864 KB Output is correct
7 Incorrect 1 ms 332 KB invalid len
8 Halted 0 ms 0 KB -