1. 程式人生 > >UVA 1610-Party Games(聚會遊戲)

UVA 1610-Party Games(聚會遊戲)

題目連結

題意 給你一N個字串 要你構造一個字串D 滿足有n/2個字串比它大 另外半個比它小
分析 給n組字串排序。然後取中間的兩組進行比較。

#include<bits/stdc++.h>
using namespace std;
string a[1006];
int main (void){
    ios::sync_with_stdio(false);
    int n;
    while(cin>>n && n){
        int arr=0;
        for(int i=0;i<n;i++) cin>>a[i];
        sort(a,a+n);
        string
b,w=a[n/2],s=a[n/2-1]; bool f=true; while(f){ for(int i=0;i<26;i++){ b=s.substr(0,arr); b+=i+'A'; if(b>=s && b<w){ f=false; break;} } arr++; } cout<<b<<endl; } return
0; }

總結紫書上說這道題坑很多,剛開始想到的是先比較s,w兩個字串中的相同元素。
後來發現這麼做要考慮得情況有點麻煩。於是想出了這麼一個耿直的思路hhhh。