Submission #1348162

#TimeUsernameProblemLanguageResultExecution timeMemory
1348162jahinahnafNile (IOI24_nile)C++20
0 / 100
15 ms2608 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long int;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using vll = vector<ll>;
using vpii = vector<pair<int,int>>;

#define pb push_back
#define endl '\n'
#define ff first
#define ss second
#define all(a) a.begin(),a.end()
const ll MOD = 10e9;

vector<long long> calculate_costs(vi W, vi A, vi B, vi Q){
	ll n = W.size();
	vector<long long> result(Q.size());
	for (int i = 0; i < Q.size(); i++){
		ll res = 0;
		if (Q[i] > 1 || (Q[i] == 1 && n % 2 == 0)) {
			if (n % 2 == 0){
			for (int i = 0; i < n; i++){
				res += B[i];
			}
		}
			else {
				ll extra = 1e18;
		
				for (int i = 0; i  < n; i++){
					extra = min(extra, abs(1LL * A[i] - B[i]));
				}
				res += extra;
		
				for (int i = 0; i < n; i++){
					res += B[i];
				}
			}}
			else if (Q[i] == 1 && n%2 == 1){
				if (A.front() < A.back()) {
					res += abs(A.front() - B.front());
				}
				else res += abs(A.back() - B.back());
		
				for (int i = 0; i < n; i++){
					res += B[i];
				}
			}
			result[i] = res;
		}
		return result;

}
#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...