版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zh1204190329/article/details/82154283
自定义序列号是0-127中任意一个或多个数字组成的随机整数组,正确的序列号需要满足“加密对”数量大于某个值。
定义:在序列号数组arr中,如果存在正整数i,j,满足0<=i < j < n并且arr[i] > arr[j],那么我们称(arr[i] , arr[j])为一个“加密对”。
例如{3,1,4,6,5,2}的“加密对”为{3,1},{3,2},{4,2},{6,5},{6,2},{5,2}。现在给一个序列号,找出有多少个“加密对”。
测试用例:
输入:3,1,4,6,5,2
输出:6
#include <iostream>
#include <string>
#include <vector>
#include<sstream>
using namespace std;
int main(void) {
int cnt = 0;
string raw_data, tmp;
vector<string> arr;
getline(cin, raw_data);
stringstream input(raw_data);
while (getline(input, tmp, ',')) {
arr.push_back(tmp);
}
for (vector<string>::iterator it = arr.begin(); it != arr.end(); it++) {
for (vector<string>::iterator p = (it + 1); p != arr.end(); p++) {
if (*it > *p)
cnt++;
}
}
cout << cnt << endl;
return 0;
}