Hatena::Grouptopcoder

hotokuの日記@topcoder部 このページをアンテナに追加 RSSフィード

 | 

2013-01-23

NinjaTurtles

| 17:41

本番で落としたので、反省の為に晒しておく。

Shut the shut up and write some code. というのは本当にそうだなと。ちょっとサボってただけのつもりだったのに…。久し振りに参加してグングン落ちるレーティングを見て思う。

閑話休題。a-1 < floor(a) <= aを利用して、Nの取りうる範囲を求めてその間をしらみ潰す(下のコードは念の為に広めに取っている)。他の人のを見たらそんな面倒な事はせず[0, 4P]の範囲をしらみ潰している人も居た。

#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <iostream>
#include <utility>
#include <set>
#include <cctype>
#include <queue>
#include <stack>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <iterator>


using namespace std;


class NinjaTurtles{
public:
  int countOpponents(int P, int K){
    for(int N = 3*K*(P-10)/(9+K); N <= 3*K*(P+10)/(9+K); ++N){
      if(3*(N/K) + N/3==P) return N;
    }
    return -1;
  }
};

 |