제출 #1238587

#제출 시각아이디문제언어결과실행 시간메모리
1238587matisitoMosaic (IOI24_mosaic)C++20
8 / 100
77 ms12984 KiB
#include "mosaic.h" #include <iostream> #include <iomanip> #include <string> #include <math.h> #include <algorithm> #include <cstring> #include <numeric> #include <vector> #include <bitset> #include <map> #include <set> #include <queue> #include <deque> #include <stack> #include <unordered_map> #include <unordered_set> #include <cassert> using namespace std; #define dbg(x) cerr<<#x<<": "<<x<<"\n"; /* ValeNotta lover */ long long suma(long long x, long long y){ if(x<=1 || y<=1) return 0; long long a, b; if(y%2==0){ a=y/2; b=(y/2)-1; }else{ a=b=y/2; } if(x%2==0) return (a*(x/2))+(b*((x/2)-1)); else return (a+b)*(x/2); } vector<long long> mosaic(vector<int> X, vector<int> Y, vector<int> T, vector<int> B, vector<int> L, vector<int> R) { int n=(int)X.size(); // vector<vector<long long>>dp(n+1, vector<long long>(n+1)); vector<long long>pref; pref.push_back(0); for(int j=1 ; j<=n ; j++){ pref.push_back(pref.back()+X[j-1]); } n=(int)T.size(); vector<long long>ans(n); for(int i=0 ; i<n ; i++){ T[i]++; B[i]++; L[i]++; R[i]++; ans[i]=suma(B[i], R[i])-suma(B[i], L[i]-1)-suma(T[i]-1, R[i])+suma(T[i]-1, L[i]-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...