Submission #1308387

#TimeUsernameProblemLanguageResultExecution timeMemory
1308387vanguardGarage (IOI09_garage)C++20
100 / 100
2 ms584 KiB
//Code By :d:3:m:o:r:a:l:1:z:e:r #include <bits/stdc++.h> using namespace std; // sum(n^2) = n(n+1)(2n+1)/6 // GP - (bk-a)/k-1 // Faulhaber’s formula typedef long long ll; typedef long double lld; typedef vector<int> vi; typedef pair<int,int> pi; string s,t; ll ans = 0; int INF=1e9; int temp; map<char,int> mpp; string chars="abcdefghijklmnopqrstuvwxyz"; unordered_map<char, int> charToInt;unordered_map<int, char> intToChar; #define PB push_back #define nl '\n' #define vectorIn(vec_name, size) \ vector<ll> vec_name(size); \ for (int i = 0; i < size; ++i) { \ cin >> vec_name[i]; \ } #define vectorHash(vec_name, size) \ vector<ll> vec_name(size); \ map<int, int> mpp; \ for (int i = 0; i < size; ++i) { \ cin >> vec_name[i]; \ mpp[vec_name[i]]++; \ } void print(vector<int> &vec_name){ for (int i = 0; i < vec_name.size(); ++i) { cout<<vec_name[i]<<" "; } cout<<nl; } // void createMapping(){ // for(int i=0;i<chars.size();++i)charToInt[chars[i]]=i+1; // for(auto const& [s, i] : charToInt)intToChar[i] = s; // } ll sum(vector<ll> numbers){ return accumulate(numbers.begin(),numbers.end(),0LL); } void stringHash(string s){ for(int c:s)mpp[c]++; } ll gcd(ll a,ll b){while(b)a%=b,swap(a,b);return a;} ll lcm(ll a,ll b){return(a&&b)?(a/gcd(a,b)*b):0;} void solve() { int n,m;cin>>n>>m; vector<int> cost(n); vector<int> weight(m); for(int i=0;i<n;i++)cin>>cost[i]; for(int i=0;i<m;i++)cin>>weight[i]; ll sm=0; vector<int> open(n,-1); ll openamt=n; ll q=2*m; queue<int> qe; while(q--){ ll no,flag=-1; cin>>no; if(no > 0) { qe.push(no-1); } else { int target_car = abs(no) - 1; for(int i = 0; i < n; i++) { if(open[i] == target_car) { open[i] = -1; openamt++; break; } } } while(!qe.empty() && openamt > 0) { int best_spot = -1; for(int i = 0; i < n; i++) { if(open[i] == -1) { best_spot = i; break; } } if(best_spot != -1) { int car_to_park = qe.front(); qe.pop(); open[best_spot] = car_to_park; openamt--; sm += (ll)cost[best_spot] * weight[car_to_park]; } else { break; } } } cout<<sm; } int main() { ios::sync_with_stdio(0); cin.tie(0); // int tt; cin>>tt; // while(tt--){ solve(); // } }
#Verdict Execution timeMemoryGrader output
Fetching results...