Submission #1029437

#TimeUsernameProblemLanguageResultExecution timeMemory
1029437XJP12Boxes with souvenirs (IOI15_boxes)C++14
10 / 100
0 ms348 KiB
#include <bits/stdc++.h> #include "boxes.h" using namespace std; typedef long long ll; typedef vector<int> vi; ll delivery(int n, int k, int L, int positions[]){ ll l=(ll)L; if(k==1){ ll ans=0; for(int i=0; i<n; i++){ ans+=min(positions[i],L-positions[i])*2; } return ans; } if(k==n){ vi pos; set<ll> z; for(int i=0; i<n; i++){ int size=(int)z.size(); z.insert(positions[i]); if((int)z.size()!=size){ pos.push_back(positions[i]); } } int x=-1,y=-1; for(int i=0; i<pos.size(); i++){ if(pos[i]*2>=l) break; x = i; } for(int i=pos.size()-1; i>=0; i--){ if((l-pos[i])*2>l) break; y = i; } long long ans=0; if(x!=-1) ans+=pos[x]*2; if(y!=-1) ans+=(n-pos[y])*2; ans=min(l, ans); if(x==-1 && y==-1) ans=l; return ans; } return 0; }

Compilation message (stderr)

boxes.cpp: In function 'll delivery(int, int, int, int*)':
boxes.cpp:26:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |   for(int i=0; i<pos.size(); i++){
      |                ~^~~~~~~~~~~
boxes.cpp:30:23: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   30 |   for(int i=pos.size()-1; i>=0; i--){
      |             ~~~~~~~~~~^~
#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...