这个题把,应该算是思维题,最后出门的时候,带上最靠近门口的快递,其他的随便怎么拿,每拿一次就要回到K按一次密码
#include<bits/stdc++.h> using namespace std; typedef long long ll; int num[1000005]; int main() { int a; ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); cin>>a; while(a--){ int n , m ,k; cin>>n>>m>>k; ll sum = 0 ; sum += k-1; for(int i = 0 ; i < m ; i++) cin>>num[i]; sort(num,num+m);//这个柜子不一定是有序的 int i = 0; if(num[0] < k){///特判第一个 i++; } for(;i < m ; i++){ if(k < num[i]) sum+=(num[i]-k)*2;/// 走一次按一次柜子 else if(k > num[i]) sum+=(k-num[i])*2; } sum+=k-1; cout<<sum<<endl; } return 0; }