QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#578435 | #8519. Radars | LittleXi# | WA | 0ms | 3544kb | C++20 | 1.7kb | 2024-09-20 19:11:41 | 2024-09-20 19:11:42 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m;
vector<vector<ll> >grid;
ll ans;
void check1(){
multiset<ll> se;
for(ll j = m;j<n;j++){
se.insert(grid[m][j]);
}
for(ll i =0;i<m;i++){
ans = min(ans , grid[m][i] + *se.begin());
se.erase(se.find(grid[m][m + i]));
}
}
void check2(){
ll mi1 = grid[0][m] , mi2 = grid[m+1][m];
for(ll i = 0;i<m;i++){
for(ll j = m;j<n;j++){
mi1 = min( mi1 , grid[i][j]);
mi2 = min( mi2 , grid[i + m + 1][j]);
}
}
for(ll j = 0; j < m;j++){
ans = min(ans , grid[m][j] + mi1 + mi2 );
}
}
void check3(){
ll mi1 = 2e9 , mi2 = 2e9 , mi3 = 2e9 , mi4 = 2e9;
for(ll i =0;i<m;i+=1){
for(ll j =0 ;j<m;j+=1){
mi1 = min(mi1, grid[i][j]);
mi2 = min(mi2 , grid[i][j+m+1]);
mi3 = min(mi3 , grid[i + m + 1][j]);
mi4 = min(mi4 , grid[i + m + 1][j+m+1]);
}
}
ans = min(ans , mi1 + mi2 + mi3 + mi4);
}
void trans(){
auto grid2 = grid;
for(ll i =0;i<n;i++){
for(ll j =0;j<n;j++){
grid2[j][i] = grid[i][j];
}
}
swap(grid2,grid);
}
void solve(){
cin>>n;
grid = vector<vector<ll>> (n,vector<ll>(n));
if(n==1){
cout<<grid[0][0]<<endl;return;
}
for(ll i =0;i<n;i+=1)
for(ll j =0;j<n;j++)
cin>>grid[i][j];
m = n/2;
ans = grid[m][m];
for(ll i =0;i<4;i++){
trans();
check1();check2();check3();
}
cout<<ans<<endl;
}
signed main(){
cin.tie(0);cout.tie(0);
ios::sync_with_stdio(0);
ll t;cin>>t;
while(t--)
solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3544kb
input:
2 3 1 1 1 1 1 1 1 1 1 5 8 5 2 8 3 5 6 9 7 3 7 8 9 1 4 8 9 4 5 5 2 8 6 9 3
output:
1 5
result:
ok 2 number(s): "1 5"
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3544kb
input:
1 1 444739567
output:
0
result:
wrong answer 1st numbers differ - expected: '444739567', found: '0'