#include <bits/stdc++.h>
#include "soccer.h"
using namespace std;
#define ll long long
#define vb vector<bool>
#define pb push_back
#define ff(aa, bb, cc) for(ll aa = bb; aa < cc; aa++)
#define vl vector<ll>
#define pll pair<ll, ll>
#define fi first
#define se second
#define ed "\n"
#define all(aaa) aaa.begin(), aaa.end()
#define rall(aaa) aaa.rbegin(), aaa.rend()
ll MOD = 1e9+7;
ll x = 0;
set<vl> st;
vl resp = {9, 8, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 5, 5, 4, 4, 4, 4, 5, 5, 4, 4, 5, 4, 3, 3, 3, 3, 3, 3, 6, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 4, 3, 3, 4, 3, 3, 4, 3, 3, 4, 4, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 5, 4, 3, 1, 1, 1, 3, 2, 1, 1, 1, 0};
map<vl, ll> mp;
void todos(ll curid, ll n, vl& cur){
if(curid == n){
ll sz = st.size();
st.insert(cur);
if(st.size() == sz){
return;
}
//cout << x+1 << ed;
/*ff(i, 1, n+1){
cout << cur[i-1] << " ";
if(i % 3 == 0){
cout << ed;
}
}*/
//cout << "===================" << ed;
vl ncur(n);
vl rf(n);
ncur = cur;
st.insert(ncur);
rf[0] = ncur[2];
rf[1] = ncur[1];
rf[2] = ncur[0];
rf[3] = ncur[5];
rf[4] = ncur[4];
rf[5] = ncur[3];
rf[6] = ncur[8];
rf[7] = ncur[7];
rf[8] = ncur[6];
st.insert(rf);
mp[ncur] = resp[x];
mp[rf] = resp[x];
/*cout << ncur[0] << " " << ncur[1] << " " << ncur[2] << " " << rf[0] << " " << rf[1] << " " << rf[2] << ed;
cout << ncur[3] << " " << ncur[4] << " " << ncur[5] << " " << rf[3] << " " << rf[4] << " " << rf[5] << ed;
cout << ncur[6] << " " << ncur[7] << " " << ncur[8] << " " << rf[6] << " " << rf[7] << " " << rf[8] << ed;
cout << ed;*/
ncur[0] = cur[6];
ncur[1] = cur[3];
ncur[2] = cur[0];
ncur[3] = cur[7];
ncur[4] = cur[4];
ncur[5] = cur[1];
ncur[6] = cur[8];
ncur[7] = cur[5];
ncur[8] = cur[2];
st.insert(ncur);
rf[0] = ncur[2];
rf[1] = ncur[1];
rf[2] = ncur[0];
rf[3] = ncur[5];
rf[4] = ncur[4];
rf[5] = ncur[3];
rf[6] = ncur[8];
rf[7] = ncur[7];
rf[8] = ncur[6];
st.insert(rf);
mp[ncur] = resp[x];
mp[rf] = resp[x];
/*cout << ncur[0] << " " << ncur[1] << " " << ncur[2] << " " << rf[0] << " " << rf[1] << " " << rf[2] << ed;
cout << ncur[3] << " " << ncur[4] << " " << ncur[5] << " " << rf[3] << " " << rf[4] << " " << rf[5] << ed;
cout << ncur[6] << " " << ncur[7] << " " << ncur[8] << " " << rf[6] << " " << rf[7] << " " << rf[8] << ed;
cout << ed;*/
ncur[0] = cur[8];
ncur[1] = cur[7];
ncur[2] = cur[6];
ncur[3] = cur[5];
ncur[4] = cur[4];
ncur[5] = cur[3];
ncur[6] = cur[2];
ncur[7] = cur[1];
ncur[8] = cur[0];
st.insert(ncur);
rf[0] = ncur[2];
rf[1] = ncur[1];
rf[2] = ncur[0];
rf[3] = ncur[5];
rf[4] = ncur[4];
rf[5] = ncur[3];
rf[6] = ncur[8];
rf[7] = ncur[7];
rf[8] = ncur[6];
st.insert(rf);
mp[ncur] = resp[x];
mp[rf] = resp[x];
/*cout << ncur[0] << " " << ncur[1] << " " << ncur[2] << " " << rf[0] << " " << rf[1] << " " << rf[2] << ed;
cout << ncur[3] << " " << ncur[4] << " " << ncur[5] << " " << rf[3] << " " << rf[4] << " " << rf[5] << ed;
cout << ncur[6] << " " << ncur[7] << " " << ncur[8] << " " << rf[6] << " " << rf[7] << " " << rf[8] << ed;
cout << ed;*/
ncur[0] = cur[2];
ncur[1] = cur[5];
ncur[2] = cur[8];
ncur[3] = cur[1];
ncur[4] = cur[4];
ncur[5] = cur[7];
ncur[6] = cur[0];
ncur[7] = cur[3];
ncur[8] = cur[6];
st.insert(ncur);
rf[0] = ncur[2];
rf[1] = ncur[1];
rf[2] = ncur[0];
rf[3] = ncur[5];
rf[4] = ncur[4];
rf[5] = ncur[3];
rf[6] = ncur[8];
rf[7] = ncur[7];
rf[8] = ncur[6];
st.insert(rf);
mp[ncur] = resp[x];
mp[rf] = resp[x];
/*cout << ncur[0] << " " << ncur[1] << " " << ncur[2] << " " << rf[0] << " " << rf[1] << " " << rf[2] << ed;
cout << ncur[3] << " " << ncur[4] << " " << ncur[5] << " " << rf[3] << " " << rf[4] << " " << rf[5] << ed;
cout << ncur[6] << " " << ncur[7] << " " << ncur[8] << " " << rf[6] << " " << rf[7] << " " << rf[8] << ed;
cout << ed;
cout << "=====================" << ed;*/
//cout << ed << ed;
x++;
return;
}
vl ac = cur;
todos(curid+1, n, ac);
ac[curid] = 1;
todos(curid+1, n, ac);
}
int biggest_stadium(int n, std::vector<std::vector<int>> F){
ll q = 0, xx = 0, y = 0;
ff(i, 0, n){
ff(j, 0, n){
if(F[i][j] == 1){
q++;
y = i;
xx = j;
}
}
}
if(q == 1){
//cout << (xx+1)*(y+1) << ed;
ll minn = (xx+1)*(y+1);
//cout << (xx+1)*(n-y) << ed;
minn = min(minn, (xx+1)*(n-y));
//cout << (n-xx)*(y+1) << ed;
minn = min(minn, (n-xx)*(y+1));
//cout << (n-xx)*(n-y) << ed;
minn = min(minn, (n-xx)*(n-y));
return (n*n)-minn;
}
if(n == 3){
vl trash(9, 0);
todos(0, 9, trash);
vl xxx;
ff(i, 0, n){
ff(j, 0, n){
xxx.pb(F[i][j]);
}
}
return mp[xxx];
}
return n*n;
}
/*
void other(){
cout << "{";
vl nw;
ff(i, 0, 102){
ll xx;
cin >> xx;
nw.pb(xx);
cout << xx << ", ";
}
cout << "}" << ed << nw.size();
}*/
/*
int main(){
vl cur(9, 0);
todos(0, 9, cur);
other();
}*/
/*
int main(){
ll t;
cin >> t;
while(t--){
int N;
cin >> N;
std::vector<std::vector<int>> F(N, std::vector<int>(N));
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
cin >> F[i][j];
}
}
int res = biggest_stadium(N, F);
cout << res << ed;
}
return 0;
}
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |