Life of xhu

About

乖乖当病号 & HOJ_1628 & HOJ_1629

Jun 05, 2014

  |   #日常   |   #HOJ

被查出肾结石已经过去三天了,这三天几乎是在完全不吃东西的状态下过来的,手脚很无力,头也是昏沉沉的,总是想睡觉。

肚子还是会有镇痛,止疼药还是不能停,基本每天要被爆菊一次。

水也一直保持一天一大瓶的速度喝着,希望这些小坏蛋能快点从我身体里排出来吧。

碎石之后,整个人的行动都慢了很多,爬个五楼都累的不行,可能是止疼药的副作用。不过大脑好像还比较好使,没出什么大毛病。

虽然嘴里没什么味道,很想吃一些好吃的东西,但是身体的康复要紧,接下来的几天还是只能吃面喝粥。

为了不让豆豆再担心了,老老实实当几天病号吧。

~~~~~~~~~~~~我是萌萌的昏割线~~~~~~~~~~~~~

身体不舒服,不想写中文翻译了,第一道题就是找个位置把数字平分,第二道题暴力求解就OK,直接放代码了。

1628

#include <iostream>
using namespace std;

int main(){
    int n, nums[100], half, sum, pos;
    bool eql;
    while(cin >> n && n){
        sum = half = 0;
        for(int i = 1; i <= n; i++){
            cin >> nums[i];
            sum += nums[i];
        }
        if(sum % 2 == 1)
            cout << "No equal partitioning." << endl;
        else{
            eql = false;
            for(int i = 1; i <= n; i++){
                half += nums[i];
                if(half == sum / 2){
                    pos = i;
                    eql = true;
                    break;
                }
            }
            if(eql)
                cout << "Sam stops at position " << pos << " and Ella stops at position " << pos + 1 << '.' << endl;
            else
                cout << "No equal partitioning." << endl;
        }
    }
}  

1629:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main(){
    int target, len, num;
    string str, result;
    bool flag;
    while(cin >> target && target){
        cin >> str;
        len = str.length();
        flag = false;
        sort(str.begin(), str.end());   //C++中sort对string的排序是通过迭代器实现的
        
        for(int i = 0; i < len; i++){
            for(int j = 0; j < len; j++){
                for(int k = 0; k < len; k++){
                    for(int l = 0; l < len; l++){
                        for(int m = 0; m < len; m++){
                            if(i != j && i != k && i != l && i != m && j != k && j != l && j != m && k != l && k != m && l != m){
                                num = (str[i] - '@') - (str[j] - '@') * (str[j] - '@') + (str[k] - '@') * (str[k] - '@') * (str[k] - '@') - (str[l] - '@') * (str[l] - '@') * (str[l] - '@') * (str[l] - '@') + (str[m] - '@') * (str[m] - '@') * (str[m] - '@') * (str[m] - '@') * (str[m] - '@');
                                if(num == target){
                                    flag = true;
                                    result = "";
                                    result = result + str[i] + str[j] + str[k] + str[l] + str[m];
                                }
                            }
                        }
                    }
                }
            }
        }
        
        if(flag)
            cout << result << endl;
        else
            cout << "no solution" << endl;
    }
}