Submission #617078


Source Code Expand

#include <iostream>
#include <iomanip>
#include <sstream>
#include <algorithm>
#include <functional>
#include <iterator>
#include <string>
#include <bitset>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <list>
#include <vector>
#include <cmath>

typedef unsigned long long int ulli;
typedef   signed long long int slli;
const ulli MAX_ULLI = 0xFFFFFFFFFFFFFFFF;
const ulli MIN_ULLI = 0x0000000000000000;
const slli MAX_SLLI = 0x7FFFFFFFFFFFFFFF;
const slli MIN_SLLI = 0x8000000000000000;
const ulli MOD = 1e9 + 7;

#ifdef __USE_REAL__
typedef long double real;
const real MATH_PI =  3.141592653589793238462643383279502884197169399375105820974944;
const real MATH_E  =  2.718281828459045235360287471352662497757247093699959574966967;
const real eps = 1e-14;
#endif /* __USE_REAL__ */

#ifdef __DEBUG__
template<typename T, typename U=T>
std::string to_string(
	const std::list<T>& l, 
	std::function<U(T)> conv = [](const T& v){ return v; },
	const std::string delim = ","
)
{
	std::stringstream ss;
	auto itr = l.begin();
	while(itr != l.end())
	{
		ss << conv(*itr);
		++itr;
		if(itr != l.end()) ss << delim;
	}
	return ss.str();
}

template<typename T, typename U=T>
std::string to_string(
	const std::vector<T>& v, 
	std::function<U(T)> conv = [](const T& v){ return v; },
	const std::string delim = ","
)
{
	std::stringstream ss;
	for(ulli i=0; i<v.size(); ++i)
	{
		ss << conv(v[i]);
		if((i + 1) < v.size()) ss << delim;
	}
	return ss.str();
}

template<typename T, typename U=T>
std::string to_string(
	const std::set<T>& s, 
	std::function<U(T)> conv = [](const T& v){ return v; },
	const std::string delim = ","
)
{
	std::stringstream ss;
	auto itr = s.begin();
	while(itr != s.end())
	{
		ss << conv(*itr);
		++itr;
		if(itr != s.end()) ss << delim;
	}
	return ss.str();
}
#endif

template<typename T, class InputIterator>
inline bool have(
	InputIterator first, 
	InputIterator last, 
	const T &val
)
{
	return std::find(first, last, val) != last;
}

template<class InputIterator, class UnaryPred>
inline bool have_if(
	InputIterator first, 
	InputIterator last, 
	UnaryPred pred
)
{
	return std::find_if(first, last, pred) != last;
}

int main()
{
	unsigned N;
	std::cin >> N;
	
	std::vector<unsigned> K(N), L(N, -1);
	for(unsigned n=0; n<N-1; ++n)
	{
		std::cin >> K[n];
	}
	K[N-1] = K[N-2];
	
	L[0] = K[0];
	for(unsigned n=1; n<N; ++n)
	{
		// L[n] = f(L[n-1], K[n-1], K[n]);
		//std::cerr << K[n-1] << ", " << K[n] << std::endl;
		if(K[n-1] < K[n])
		{
			L[n] = K[n-1];
		}
		else
		{
			L[n] = K[n];
		}
	}
	//std::cout << to_string(L) << std::endl;
	
	std::stringstream ss;
	for(ulli i=0; i<L.size(); ++i)
	{
		ss << L[i];
		if((i + 1) < L.size()) ss << ' ';
	}
	std::cout << ss.str() << std::endl;
	
	return 0;
}

Submission Info

Submission Time
Task B - 積み鉛筆
User material
Language C++11 (GCC 4.9.2)
Score 80
Code Size 2901 Byte
Status AC
Exec Time 117 ms
Memory 3500 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 80 / 80
Status
AC × 3
AC × 15
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All subtask0_0.txt, subtask0_1.txt, subtask0_10.txt, subtask0_11.txt, subtask0_12.txt, subtask0_13.txt, subtask0_14.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt
Case Name Status Exec Time Memory
sample1.txt AC 27 ms 744 KB
sample2.txt AC 28 ms 920 KB
sample3.txt AC 25 ms 920 KB
subtask0_0.txt AC 110 ms 3236 KB
subtask0_1.txt AC 90 ms 2732 KB
subtask0_10.txt AC 86 ms 2608 KB
subtask0_11.txt AC 95 ms 2860 KB
subtask0_12.txt AC 103 ms 3200 KB
subtask0_13.txt AC 86 ms 2700 KB
subtask0_14.txt AC 98 ms 2988 KB
subtask0_2.txt AC 84 ms 2596 KB
subtask0_3.txt AC 102 ms 3120 KB
subtask0_4.txt AC 88 ms 2684 KB
subtask0_5.txt AC 87 ms 2608 KB
subtask0_6.txt AC 102 ms 3112 KB
subtask0_7.txt AC 77 ms 2472 KB
subtask0_8.txt AC 94 ms 2852 KB
subtask0_9.txt AC 117 ms 3500 KB