本文主要是介绍【C++】美感(beautiful),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
寿寿喜欢有美感的序列。
对于寿寿来说一个序列是有美感的,当且仅当这个序列每两个相邻的数的和是m的倍数。特别的,寿寿认为长度为1的序列也是具有美感的。
寿寿现在随便在纸上写了一个长度为n的序列a,这个序列目前还不具有美感。因此寿寿想通过删除这个序列中的一些数来让它具有美感。
寿寿想知道最少需要删除几个数。
输入
第一行两个整数n和m。
第二行n个正整数表示序列a。
输出
一行一个整数,表示最少需要删除的数字数。
样例输入 Copy
2 2
1 1
样例输出 Copy
0
提示
对于10% 的数据,n=2;
对于30% 的数据,n≤20;
对于50% 的数据,m=2;
对于80% 的数据,m≤3;
对于90% 的数据,n,m≤1000;
对于所有数据,1≤n,m≤105, 1≤a[i] ≤109。
#include <cstdio> #include <algorithm> using namespace std; const int N = 1e5 + 10; int b[N]; int main() {int n, m, temp, mx = 0;scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++){scanf("%d", &temp);int cur = temp % m;int pre = (m - temp % m) % m;b[cur] = b[pre] + 1;mx = max(mx, b[cur]);}printf("%d\n", n - mx);return 0; }
这篇关于【C++】美感(beautiful)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!