This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "fish.h"
#include <iostream>
#include <vector>
#include <tuple>
#include <set>
#include <map>
using namespace std;
#define ll long long
int n,m;
vector<int>x,y,w;
ll ans=0;
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) {
tie(n,m,x,y,w)=tie(N,M,X,Y,W);
bool su1=true,su2=true;
for(int i=0;i<m;i++){
if(x[i]%2==1) su1=false;
if(x[i]>1) su2=false;
}
if(su1){for(int i=0;i<m;i++) ans+=w[i];return ans;}
if(su2){
set<pair<int,int>>s;
map<int,int>id;
for(int i=0;i<m;i++){
s.insert({x[i],y[i]});
if(x[i]==1) id[y[i]]=i;
}
for(int i=0;i<m;i++){
if(x[i]==0 && s.find({1,y[i]})!=s.end()){
ans+=max(w[i],w[id[y[i]]]);
}
else if(x[i]==1 && s.find({0,y[i]})!=s.end()){}
else ans+=w[i];
}
return ans;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |