Submission #960272

#TimeUsernameProblemLanguageResultExecution timeMemory
960272WansurMars (APIO22_mars)C++17
36 / 100
105 ms5036 KiB
#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;
}

string process(vector<vector<string> > a,int x,int y,int k,int n){
    k++;
    for(int i=x;i<=x+2;i++){
        for(int j=y;j<=y+2;j++){
            int pos=0;
            for(int s=i;s<i+2*k-1;s+=2){
                for(int f=j;f<j+2*k-1;f+=2){
                    used[s][f] = (a[i-x][j-y][pos] == '1');
                    pos++;
                }
            }
        }
    }
    string ans="";
    for(int i=x;i<x+2*k+1;i+=2){
        for(int j=y;j<y+2*k+1;j+=2){
            ans+=char(used[i][j]+'0');
        }
    }
    while(ans.size() < 100){
        ans+='0';
    }
    if(n==k){
        return gn(n * 2 + 1);
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...