제출 #778659

#제출 시각아이디문제언어결과실행 시간메모리
778659Malix메기 농장 (IOI22_fish)C++17
3 / 100
62 ms7264 KiB
#include "fish.h"

#include <vector>
using namespace std;

long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) {


  int count = 0;
  long long ans = 0;
     long long tempMax = 0;
  for(int i = 0; i < M; i++){
    if(X[i]%2 == 0){
      count++;
    }
  }
  
  if(count == M){

    for(int i = 0; i < M; i++){
      ans += (long long)W[i];
    }
    return ans;
  }
  
  count = 0;
  for(int i = 0; i < M; i++){
    if(X[i] <= 1){
      count++;
    }
  }
  if(count == M){
    vector<vector <int> > grid(2, vector<int>(N, 0));
    long long zeroside = 0;
    long long oneside = 0;
    for(int i = 0; i < M; i++){
        if(X[i]){
          oneside += (long long)W[i];
        }
        else{
          zeroside += (long long)W[i];
        }
        grid[X[i]][Y[i]] = W[i];

    }
    if(N == 2){
      ans = max(oneside, zeroside);

    }
    else{
      long long tempSum = 0;
   
      for(int i = 0; i < N; i++){
        tempSum += grid[1][i] - grid[0][i];
        tempMax = max(tempSum, tempMax);
      }
      ans = tempMax + oneside;

    }
    

    return ans;

  }




  return 0;
}
#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...