1128
#include <cstdio>
#include <iostream>
using namespace std;
#define LL long long
int main(){
int n,k;
scanf("%d%d",&n,&k);
int flag = 0;
int l = 0;
int r = 0;
for(int i = 0;i < n;i++){
int a;
scanf("%d",&a);
if(a > k){
r++;
}
else if(a < k){
l++;
}
else{
flag = 1;
}
}
if(flag){
printf("%d\n",l+1);
}
else{
printf("-1\n");
}
return 0;
}
1097
#include <cstdio>
#include <iostream>
#include <queue>
#include <stack>
#include <cstring>
using namespace std;
int n;
const int INF = 10000000;
int d[1005];
int a[1005][1005];
int prim(){
for(int i = 0;i < n;i++){
d[i] = INF;
}
queue<int> que;
d[0] = 0;
que.push(0);
int ans = 0;
while(!que.empty()){
int u = que.front();
que.pop();
for(int i = 0;i < n;i++){
if(d[i] && d[i] > a[u][i]){
d[i] = a[u][i];
}
}
int mi = INF;
int c;
for(int i = 0;i < n;i++){
if(d[i] && d[i] < mi){
mi = d[i];
c = i;
}
}
if(mi!=INF){
d[c] = 0;
ans += mi;
que.push(c);
}
}
return ans;
}
int main(){
cin >> n;
for(int i = 0;i < n;i++){
for(int j = 0;j < n;j++){
scanf("%d",&a[i][j]);
}
}
cout << prim() << endl;
return 0;
}
1141
#include <cstdio>
#include <iostream>
using namespace std;
#define LL long long
LL ans;
int a[100005];
int b[100005];
void fun(int l,int r){
if(r <= l + 1){
return;
}
int mid = (l+r)/ 2;
fun(l,mid);
fun(mid,r);
int s1 = l;
int s2 = mid;
int cc = l;
while(s1 < mid && s2 < r){
while(a[s1] > a[s2] && s2 < r){
b[cc++] = a[s2++];
}
ans += s2 - mid;
b[cc++] = a[s1++];
}
int s = l;
for(;s1 < mid;s1++){
ans += r -mid;
b[cc++] = a[s1];
}
for(;s2 < r;s2++){
b[cc++] = a[s2];
}
for(int i = l;i < r;i++){
a[i] = b[i];
}
}
int main(){
int n;
cin >> n;
for(int i = 0;i < n;i++){
scanf("%d",&a[i]);
}
ans = 0;
fun(0,n);
cout << ans << endl;
return 0;
}