本文是博主原创文章,未经允许不得转载。

我在csdn上也同步发布了此文,链接 https://blog.csdn.net/umbrellalalalala/article/details/79891552

题目链接 http://codeforces.com/problemset/problem/961/A
【题目】
You are given a following process.

There is a platform with n columns. 1×1 squares are appearing one after another in some columns on this platform. If there are no squares in the column, a square will occupy the bottom row. Otherwise a square will appear at the top of the highest square of this column.

When all of the n columns have at least one square in them, the bottom row is being removed. You will receive 1 point for this, and all the squares left will fall down one row.

You task is to calculate the amount of points you will receive.

Input

The first line of input contain 2 integer numbers n and m (1≤n,m≤1000) — the length of the platform and the number of the squares.

The next line contain mm integer numbers c1,c2,…,cm (1≤ci≤n) — column in which i-th square will appear.

Output

Print one integer — the amount of points you will receive.

Example
Input

 
3 9
1 1 2 2 2 3 1 2 3
Output

 
2
Note

In the sample case the answer will be equal to 2 because after the appearing of 6-th square will be removed one row (counts of the squares on the platform will look like [2 3 1], and after removing one row will be [1 2 0]).

After the appearing of 9-th square counts will be [2 3 1], and after removing one row it will look like [1 2 0].

So the answer will be equal to 2.
 
【大意及分析】
有点像俄罗斯方块,大意就是在n列的区域中,随机在给定的若干列依次出现m个小方块,每个小方块都会占据本列空闲位置的最下方,当每一列的最后一行都有小方块时,这一行就会被删掉,分数加一,然后上面的方块下落一行。
我们只需要利用数组表示每一列的方块个数即可(注意不要用二维数组表示每一列的方块的情况,我们并不需要知晓方块的具体位置,那样算法复杂度会变大)。
 
【示例代码】
 #include<stdio.h>
#include<stdlib.h>
#define MAX_N 1005
int a[MAX_N]; int main() {
int score = ;
int n, m, temp, bottom_score = ;
bool judge;
scanf("%d %d", &n, &m);
for (int i = ; i < n; i++)
a[i] = ;
for (int i = ; i < m; i++) {
scanf("%d", &temp);
a[temp - ]++;
judge = true;
for (int k = ; k < n; k++) {
if (a[k] == bottom_score) {
judge = false;
break;
}
}
if (judge) {
score++;
bottom_score++;
}
}
printf("%d\n", score);
return ;
}

codeforces——961A Tetris的更多相关文章

  1. Codeforces Round #627 (Div. 3) A - Yet Another Tetris Problem(逻辑)

    题意 : 有n个高度,可以使任一高度加二任意次,问最终n个高度可否相同. 思路: 因为添加的2x1的方块不可旋转,只需考虑所有高度是否为同一奇偶性即可. #include <bits/stdc+ ...

  2. x01.Tetris: 俄罗斯方块

    最强大脑有个小孩玩俄罗斯方块游戏神乎其技,那么,就写一个吧,玩玩而已. 由于逻辑简单,又作了一些简化,所以代码并不多. using System; using System.Collections.G ...

  3. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  4. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  5. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  6. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  7. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  8. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  9. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

随机推荐

  1. Synchronize 和 Lock 的区别与用法

    一.synchronized和lock的用法区别 (1)synchronized(隐式锁):在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号中表示需要 ...

  2. 设计模式之——工厂模式(B)

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41142929 工厂方法模式定义了一个创建对象的接口,但由子 ...

  3. Objective-C中的instancetype和id…

    作者:韩俊强 原文地址:http://control.blog.sina.com.cn/admin/article/article_add.php 转载请注明出处 一.什么是instancetype ...

  4. MinerStoreThread.java 存储线程

    MinerStoreThread.java 存储线程 package com.iteye.injavawetrust.miner; import java.util.HashMap; import j ...

  5. 【翻译】Ext JS 5的委托事件和手势

    原文:Delegated Events and Gestures in Ext JS 5 简介 Ext JS在5之前的版本,被设计为专用于传统鼠标输入的桌面设备使用.而从5开始,添加了对触屏输入的支持 ...

  6. Dynamics CRM2013/2015 禁止欢迎界面(Disable the Welcome Screen)

    首次打开Dynamic CRM  2013会出现一个欢迎界面如下图,要想它不出现勾选图中的复选框就行,OK下回再打开就没有了. 但是当我们打开F12开发人员工具,清除域的缓存后再次打开CRM,这个欢迎 ...

  7. C语言中 sscanf 的用法

    名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ...

  8. imx51-linux的cpuinfo之分析

    这两天客户提出来,我们的平板cat /proc/cpuinfo出来的信息中的serial怎么是0. 客户就是上帝啊,没办法,分析找问题贝. 我们先看一下目前的cat /proc/cpuinfo的信息: ...

  9. Hadoop 数据排序(一)

    1.概述 1TB排序通常用于衡量分布式数据处理框架的数据处理能力.Terasort是Hadoop中的的一个排序作业.那么Terasort在Hadoop中是怎样实现的呢?本文主要从算法设计角度分析Ter ...

  10. tomcat中的线程问题

    看这篇文章之前,请先阅读: how tomcat works 读书笔记 十一 StandWrapper 上 地址如下: http://blog.csdn.net/dlf123321/article/d ...