Submission #1312064

#TimeUsernameProblemLanguageResultExecution timeMemory
1312064eri16Mosaic (IOI24_mosaic)C++20
22 / 100
182 ms206008 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; vector<ll> mosaic(vector<int> X, vector<int> Y,vector<int> T, vector<int> B,vector<int> L, vector<int> R){ int arr[5005][5005]; int dp[5005][5005]; ll n = X.size(); for (int i=0; i<n; i++){arr[0][i]=X[i];} for (int i=0; i<n; i++){arr[i][0]=Y[i];} dp[0][0]=arr[0][0]; for (int i=1; i<n; i++){ dp[0][i]=dp[0][i-1]+arr[0][i]; dp[i][0]=dp[i-1][0]+arr[i][0]; } for (int i=1; i<n; i++){ for (int j=1; j<n; j++){ arr[i][j]= 1 - (arr[i-1][j] | arr[i][j-1]); dp[i][j]=dp[i][j-1]+dp[i-1][j]-dp[i-1][j-1]+arr[i][j]; } } ll q = T.size(); vector <ll> ans; ll t,b,l,r; for (int i=0; i<q; i++){ t=T[i]; b=B[i]; l=L[i]; r=R[i]; ll sm=dp[b][r]; if (l){sm-=dp[b][l-1];} if (t){sm-=dp[t-1][r];} if (l && t){sm+=dp[t-1][l-1];} ans.push_back(sm); } 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...