Submission #656280


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define rep(i,n) for(i=0;i<n;++i)
#define each(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); ++itr)
#define mp make_pair
#define pb push_back
#define fi first
#define sc second

//(現在注目している人,とにかく座りたい人だけ座れる席の数,誰でも座れる席の区間開始位置)
double dp[101][205][205]={0};

int main()
{
	int i,j,k;

	int n,K;
	cin >>n>>K;
	vector<int> p(n);
	rep(i,n) cin >>p[i];

	//最初の人は絶対に席1に座る
	if(K==1) printf("0\n");
	else
	{
		dp[0][1][3]=1.0;
		for(i=1; i<n; ++i)
		{//i番目の人に注目

			//j=1のときにとにかく座りたい場合、kの1つ左に座ることになるのでkが1つ進む
			for(k=3; k<=K+1; ++k)
				dp[i][1][k] += dp[i-1][1][k-1]*p[i]/100;

			for(j=1; j<=K; ++j)
			{//とにかく座りたい人だけ座れる席j個
				for(k=3; k<=K+1; ++k)
				{//誰でも座れる席の区間開始位置
					//とにかく座りたい
					dp[i][j][k] += dp[i-1][j+1][k]*p[i]/100;
					//余裕なら座りたい
					dp[i][j][k] += dp[i-1][j-1][k-2]*(100-p[i])/100;
				}

				//余裕なら座りたい
				dp[i][j][K+1] += dp[i-1][j][K]*(100-p[i])/100;
				//でも座れない
				dp[i][j][K+1] += dp[i-1][j][K+1]*(100-p[i])/100;
			}
		}

		double ans=0.0;

		rep(i,K)rep(j,K+2)
			ans+=(i+(K+1-j))*dp[n-1][i][j];

		printf("%.10lf\n",ans);
	}

}

Submission Info

Submission Time
Task G - 通勤電車と気分
User imulan
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1499 Byte
Status AC
Exec Time 180 ms
Memory 32872 KB

Judge Result

Set Name Sample Subtask All
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 3
AC × 22
AC × 41
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask sample_01.txt, sample_02.txt, sample_03.txt, small_01.txt, small_02.txt, small_03.txt, small_04.txt, small_05.txt, small_06.txt, subtask_01.txt, subtask_02.txt, subtask_03.txt, subtask_04.txt, subtask_05.txt, subtask_06.txt, subtask_07.txt, subtask_08.txt, subtask_09.txt, subtask_10.txt, subtask_11.txt, subtask_12.txt, subtask_13.txt
All large_01.txt, large_02.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, small_01.txt, small_02.txt, small_03.txt, small_04.txt, small_05.txt, small_06.txt, subtask_01.txt, subtask_02.txt, subtask_03.txt, subtask_04.txt, subtask_05.txt, subtask_06.txt, subtask_07.txt, subtask_08.txt, subtask_09.txt, subtask_10.txt, subtask_11.txt, subtask_12.txt, subtask_13.txt
Case Name Status Exec Time Memory
large_01.txt AC 88 ms 16620 KB
large_02.txt AC 86 ms 16996 KB
random_01.txt AC 86 ms 17004 KB
random_02.txt AC 79 ms 14952 KB
random_03.txt AC 48 ms 7528 KB
random_04.txt AC 34 ms 3176 KB
random_05.txt AC 28 ms 1480 KB
random_06.txt AC 96 ms 19180 KB
random_07.txt AC 113 ms 22256 KB
random_08.txt AC 142 ms 26352 KB
random_09.txt AC 174 ms 31468 KB
random_10.txt AC 92 ms 17004 KB
random_11.txt AC 94 ms 17000 KB
random_12.txt AC 93 ms 17000 KB
random_13.txt AC 33 ms 2660 KB
random_14.txt AC 34 ms 2668 KB
random_15.txt AC 33 ms 2668 KB
random_16.txt AC 109 ms 19940 KB
random_17.txt AC 117 ms 21736 KB
random_18.txt AC 180 ms 32872 KB
random_19.txt AC 178 ms 32488 KB
random_20.txt AC 94 ms 17004 KB
sample_01.txt AC 27 ms 924 KB
sample_02.txt AC 27 ms 964 KB
sample_03.txt AC 25 ms 1048 KB
small_01.txt AC 26 ms 880 KB
small_02.txt AC 27 ms 796 KB
small_03.txt AC 26 ms 800 KB
small_04.txt AC 26 ms 800 KB
small_05.txt AC 27 ms 924 KB
small_06.txt AC 27 ms 968 KB
subtask_01.txt AC 28 ms 1012 KB
subtask_02.txt AC 31 ms 876 KB
subtask_03.txt AC 28 ms 1100 KB
subtask_04.txt AC 29 ms 1048 KB
subtask_05.txt AC 28 ms 1000 KB
subtask_06.txt AC 29 ms 996 KB
subtask_07.txt AC 35 ms 2668 KB
subtask_08.txt AC 26 ms 916 KB
subtask_09.txt AC 28 ms 872 KB
subtask_10.txt AC 25 ms 920 KB
subtask_11.txt AC 26 ms 1044 KB
subtask_12.txt AC 26 ms 1052 KB
subtask_13.txt AC 26 ms 1052 KB