제출 #467766

#제출 시각아이디문제언어결과실행 시간메모리
467766Carmel_Ab1선물상자 (IOI15_boxes)C++17
0 / 100
15 ms304 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll>vl;
#include "boxes.h"
#define all(x) x.begin(),x.end()
//#include "grader.cpp"
ll dst(ll x,ll y,ll l){
    if(x<y)
        return min(y-x,l-y+x);
    else
        return min(x-y,l-x+y);

}
ll delivery(int N, int K, int L, int P[]) {
    ll n=N,k=K,l=L;
    vl p(n);
    for(int i=0; i<n; i++)
        p[i]=P[i];

    ll ans=1e18;
    for(int i=0; i<n ;i++){
        ll cur=0,has=0,sum=0;
        for(int j=0; j<=i; j++) {
            if((j+1)%k==0)
                sum+=2*dst(0,p[j],l);
        }
        if((i+1)%k)
            sum+=2*min(p[i],l-p[i]);
        for(int j=n-1; j>i; j--){
            has++;
            if(has%k==0 || j==i+1)
                sum+=2*(l-p[j]);
        }

        ans=min(ans,sum);
    }

    for(int i=0; i<n; i++){
        ll cur=0,has=0,sum=0;
        for(int j=0; j<=i; j++) {
            if((j+1)%k==0)
                sum+=2*p[j];
        }
        if((i+1)%k)
            sum+=2*min(p[i],l-p[i]);
        while((has%k)!=0)
            has++;
        sum+=l;
        for(int j=n-1; j>has; j--){
            has++;
            if(has%k==0 || j==has+1)
                sum+=2*(l-p[j]);
        }
        ans=min(ans,sum);

    }
    return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

boxes.cpp: In function 'll delivery(int, int, int, int*)':
boxes.cpp:30:20: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   30 |         for(int j=n-1; j>i; j--){
      |                   ~^~
boxes.cpp:23:12: warning: unused variable 'cur' [-Wunused-variable]
   23 |         ll cur=0,has=0,sum=0;
      |            ^~~
boxes.cpp:50:20: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   50 |         for(int j=n-1; j>has; j--){
      |                   ~^~
boxes.cpp:40:12: warning: unused variable 'cur' [-Wunused-variable]
   40 |         ll cur=0,has=0,sum=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...