답안 #820080

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
820080 2023-08-10T18:58:39 Z tolbi 선물상자 (IOI15_boxes) C++17
100 / 100
659 ms 450456 KB
#pragma optimize("Bismillahirrahmanirrahim");
//█▀█─█──█──█▀█─█─█
//█▄█─█──█──█▄█─█■█
//█─█─█▄─█▄─█─█─█─█
//Allahuekber
//ahmet23 orz...
//FatihSultanMehmedHan
//YavuzSultanSelimHan
//AbdulhamidHan
//Sani buyuk Osman Pasa Plevneden cikmam diyor
#define author tolbi
#include <bits/stdc++.h>
using namespace std;
template<typename T> istream& operator>>(istream& is, vector<T> &v){for (auto &it : v) is>>it;return is;}
template<typename T, size_t Y> istream& operator>>(istream& is, array<T,Y> &v){for (auto &it : v) is>>it;return is;}
template<typename T> ostream& operator<<(ostream& os, vector<T> &v){for (auto &it : v) os<<it<<" ";return os;}
template<typename T, size_t Y> ostream& operator<<(ostream& os, array<T,Y> &v){for (auto &it : v) os<<it<<" ";return os;}
template<typename X, typename Y> istream& operator>>(istream& is, pair<X,Y> &pr){return is<<pr.first<<" "<<pr.second;}
template<typename X, typename Y> ostream& operator<<(ostream& os, pair<X,Y> &pr){return os>>pr.first>>pr.second;}
#define deci(x) int x;cin>>x;
#define decstr(x) string x;cin>>x;
#define vint(x) vector<int> x
#define cinarr(x) for (auto &it : x) cin>>it;
#define coutarr(x) for (auto &it : x) cout<<it<<" ";cout<<endl;
#define sortarr(x) sort(x.begin(), x.end())
#define sortrarr(x) sort(x.rbegin(), x.rend())
#define rev(x) reverse(x.begin(), x.end())
#define endl '\n'
#define tol(bi) (1LL<<((int)(bi)))
typedef long long ll;
const int MOD = 1e9+7;
mt19937 ayahya(chrono::high_resolution_clock().now().time_since_epoch().count());
#include "boxes.h"

long long delivery(int n, int k, int l, int _arr[]) {
	vector<ll> arr1;
	vector<ll> arr2;
	for (int i = 0; i < n; ++i)
	{
		if (_arr[i]>0){
			arr1.push_back(_arr[i]);	
		}
		if (_arr[n-i-1]>0){
			arr2.push_back(l-_arr[n-i-1]);
		}
	}
	n=arr1.size();
	if (n==0) return 0;
	vector<ll> dp1(n,0);
	vector<ll> dp2(n,0);
	for (int i = 0; i < n; i++){
		if (i<k){
			dp1[i]=arr1[i]+min(arr1[i],l-arr1[i]);
		}
		else {
			dp1[i]=dp1[i-k]+arr1[i]+min(arr1[i],l-arr1[i]);
		}
	}
	swap(arr1,arr2);
	for (int i = 0; i < n; i++){
		if (i<k){
			dp2[i]=arr1[i]+min(arr1[i],l-arr1[i]);
		}
		else {
			dp2[i]=dp2[i-k]+arr1[i]+min(arr1[i],l-arr1[i]);
		}
	}
	swap(arr1,arr2);
	ll ans = min(dp1[n-1],dp2[n-1]);
	for (int i = 0; i < n-1; i++){
		int a = i;
		int b = n-2-i;
		ll crr=dp1[a]+dp2[b];
		ans=min(ans,crr);
	}
	return ans;
}

Compilation message

boxes.cpp:1: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    1 | #pragma optimize("Bismillahirrahmanirrahim");
      | 
boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:47:13: warning: conversion from 'std::vector<long long int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   47 |  n=arr1.size();
      |    ~~~~~~~~~^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 0 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 308 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 308 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 308 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 0 ms 340 KB Output is correct
8 Correct 0 ms 340 KB Output is correct
9 Correct 1 ms 308 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 1 ms 340 KB Output is correct
12 Correct 1 ms 340 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 308 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 308 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 0 ms 340 KB Output is correct
25 Correct 0 ms 340 KB Output is correct
26 Correct 0 ms 340 KB Output is correct
27 Correct 0 ms 316 KB Output is correct
28 Correct 1 ms 316 KB Output is correct
29 Correct 0 ms 340 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 1 ms 340 KB Output is correct
32 Correct 0 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 0 ms 340 KB Output is correct
8 Correct 0 ms 340 KB Output is correct
9 Correct 1 ms 308 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 1 ms 340 KB Output is correct
12 Correct 1 ms 340 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 308 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 308 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 0 ms 340 KB Output is correct
25 Correct 0 ms 340 KB Output is correct
26 Correct 0 ms 340 KB Output is correct
27 Correct 0 ms 316 KB Output is correct
28 Correct 1 ms 316 KB Output is correct
29 Correct 0 ms 340 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 1 ms 340 KB Output is correct
32 Correct 0 ms 340 KB Output is correct
33 Correct 63 ms 45436 KB Output is correct
34 Correct 26 ms 31340 KB Output is correct
35 Correct 31 ms 36560 KB Output is correct
36 Correct 56 ms 45564 KB Output is correct
37 Correct 56 ms 45536 KB Output is correct
38 Correct 55 ms 45536 KB Output is correct
39 Correct 52 ms 44044 KB Output is correct
40 Correct 34 ms 39232 KB Output is correct
41 Correct 55 ms 45476 KB Output is correct
42 Correct 34 ms 39656 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 0 ms 340 KB Output is correct
8 Correct 0 ms 340 KB Output is correct
9 Correct 1 ms 308 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 1 ms 340 KB Output is correct
12 Correct 1 ms 340 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 308 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 308 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 0 ms 340 KB Output is correct
25 Correct 0 ms 340 KB Output is correct
26 Correct 0 ms 340 KB Output is correct
27 Correct 0 ms 316 KB Output is correct
28 Correct 1 ms 316 KB Output is correct
29 Correct 0 ms 340 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 1 ms 340 KB Output is correct
32 Correct 0 ms 340 KB Output is correct
33 Correct 63 ms 45436 KB Output is correct
34 Correct 26 ms 31340 KB Output is correct
35 Correct 31 ms 36560 KB Output is correct
36 Correct 56 ms 45564 KB Output is correct
37 Correct 56 ms 45536 KB Output is correct
38 Correct 55 ms 45536 KB Output is correct
39 Correct 52 ms 44044 KB Output is correct
40 Correct 34 ms 39232 KB Output is correct
41 Correct 55 ms 45476 KB Output is correct
42 Correct 34 ms 39656 KB Output is correct
43 Correct 619 ms 449384 KB Output is correct
44 Correct 257 ms 309876 KB Output is correct
45 Correct 361 ms 373712 KB Output is correct
46 Correct 627 ms 450456 KB Output is correct
47 Correct 659 ms 450404 KB Output is correct
48 Correct 629 ms 450352 KB Output is correct
49 Correct 591 ms 435280 KB Output is correct
50 Correct 419 ms 388276 KB Output is correct
51 Correct 631 ms 450344 KB Output is correct
52 Correct 423 ms 391920 KB Output is correct