//E题,不懂的看新生训练题解
#include<stdio.h>
int main()
{
double m;
int n;
while (~scanf("%lf%d", &m, &n))
{
printf("%.*lf\n", n, m);
}
return 0;
}
//D题,一个预处理就ok
#include<stdio.h>
int a[1000005];
int main()
{
a[1]=1,a[2]=1;
for(int i=3;i<=1000000;i++)
{
a[i]=(a[i-1]%1000000000+a[i-2]%1000000000)%1000000000;
}
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
printf("%d\n",a[n]);
}
return 0;
}
//c题,打表找下规律,会发现是以1 1 2 0 2 2 1 0为循环
#include <stdio.h>
int a[100];
int main()
{
a[1] = 1; a[2] = 1;
for (int i = 3; i < 50; i++)
{
a[i] = (a[i - 1] + a[i - 2]) % 3;
}
long long n;
while (~scanf("%lld", &n))
{
n = n % 8;
if (n == 0)
n = 8;
printf("%d\n", a[n]);
}
}
/*A题
now表示已知现在袋子里有多少物品
ma表示已知袋子里最多有多少物品
三种情况:
+id(这种情况明显之前id不在袋子里) now++,因为now增加了则ma=max(ma,now);
-id(+id在之前出现过) now--
-id(+id在之前没出现过,证明在放东西之前袋子里已经有了id,所以取出后now不变ma则要加1) ma++,now不变
*/
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
int v[1000005];
int main()
{
memset(v, 0, sizeof(v));
char s;
int data, now, ma, n;
now = ma = 0;
scanf("%d", &n);
while (n--)
{
scanf(" %c%d", &s, &data);
if (s == '+')
{
now++;
v[data] = 1;
ma = max(ma, now);
}
else
{
if (v[data])
{
now--;
v[data] = 0;
}
else
ma++;
}
}
printf("%d\n", ma);
return 0;
}
/*B题
sort一下,把没分组的最大最小加起来如果<=w,就把他们分到一组,如果>w,最大的数就单独一组
*/
int a[30005];
int main()
{
int n, m, i, j, sum;
scanf("%d", &n);
scanf("%d", &m);
for (i = 0; i < m; i++)
scanf("%d", &a[i]);
sort(a, a + m);
i = sum = 0; j = m - 1;
while (i <= j)
{
if (a[i] + a[j] <= n)
{
sum++;
i++;
j--;
}
else
{
sum++;
j--;
}
}
printf("%d\n", sum);
return 0;
}