AtCoder Beginner Contest 019

Submission #345017

Source codeソースコード

#ifndef KOMAKI_LOCAL
#define NDEBUG
#endif

#include <bits/stdc++.h>
#include <sys/time.h>
#include <unistd.h>
using namespace std;
#define i64         int64_t
#define rep(i, n)   for(i64 i = 0; i < ((i64)(n)); ++i)
#define sz(v)       ((i64)((v).size()))
#define bit(n)      (((i64)1)<<((i64)(n)))
#define all(v)      (v).begin(), (v).end()

std::string dbgDelim(int &i){ return (i++ == 0 ? "" : ", "); }
#define dbgEmbrace(exp) { int i = 0; os << "{"; { exp; } os << "}"; return os; }
template <class T> std::ostream& operator<<(std::ostream &os, std::vector<T> v);
template <class T> std::ostream& operator<<(std::ostream &os, std::set<T> v);
template <class T> std::ostream& operator<<(std::ostream &os, std::queue<T> q);
template <class T> std::ostream& operator<<(std::ostream &os, std::priority_queue<T> q);
template <class T, class K> std::ostream& operator<<(std::ostream &os, std::pair<T, K> p);
template <class T, class K> std::ostream& operator<<(std::ostream &os, std::map<T, K> mp);
template <class T, class K> std::ostream& operator<<(std::ostream &os, std::unordered_map<T, K> mp);
template <int INDEX, class TUPLE> void dbgDeploy(std::ostream &os, TUPLE tuple){}
template <int INDEX, class TUPLE, class H, class ...Ts> void dbgDeploy(std::ostream &os, TUPLE t)
{ os << (INDEX == 0 ? "" : ", ") << get<INDEX>(t); dbgDeploy<INDEX + 1, TUPLE, Ts...>(os, t); }
template <class T, class K> void dbgDeploy(std::ostream &os, std::pair<T, K> p, std::string delim)
{ os << "(" << p.first << delim << p.second << ")"; }
template <class ...Ts> std::ostream& operator<<(std::ostream &os, std::tuple<Ts...> t)
{ os << "("; dbgDeploy<0, std::tuple<Ts...>, Ts...>(os, t); os << ")"; return os; }
template <class T, class K> std::ostream& operator<<(std::ostream &os, std::pair<T, K> p)
{ dbgDeploy(os, p, ", "); return os; }
template <class T> std::ostream& operator<<(std::ostream &os, std::vector<T> v)
{ dbgEmbrace( for(T t: v){ os << dbgDelim(i) << t; }); }
template <class T> std::ostream& operator<<(std::ostream &os, std::set<T> s)
{ dbgEmbrace( for(T t: s){ os << dbgDelim(i) << t; }); }
template <class T> std::ostream& operator<<(std::ostream &os, std::queue<T> q)
{ dbgEmbrace( for(; q.size(); q.pop()){ os << dbgDelim(i) << q.front(); }); }
template <class T> std::ostream& operator<<(std::ostream &os, std::priority_queue<T> q)
{ dbgEmbrace( for(; q.size(); q.pop()){ os << dbgDelim(i) << q.top();   }); }
template <class T, class K> std::ostream& operator<<(std::ostream &os, std::map<T, K> mp)
{ dbgEmbrace( for(auto p: mp){ os << dbgDelim(i); dbgDeploy(os, p, "->"); }); }
template <class T, class K> std::ostream& operator<<(std::ostream &os, std::unordered_map<T, K> mp)
{ dbgEmbrace( for(auto p: mp){ os << dbgDelim(i); dbgDeploy(os, p, "->"); }); }
#define DBG_OUT std::cerr
#define DBG_OVERLOAD(_1, _2, _3, _4, _5, _6, macro_name, ...) macro_name
#define DBG_LINE() { char s[99]; sprintf(s, "line:%3d | ", __LINE__); DBG_OUT << s; }
#define DBG_OUTPUT(v) { DBG_OUT << (#v) << "=" << (v); }
#define DBG1(v, ...) { DBG_OUTPUT(v); }
#define DBG2(v, ...) { DBG_OUTPUT(v); DBG_OUT << ", "; DBG1(__VA_ARGS__); }
#define DBG3(v, ...) { DBG_OUTPUT(v); DBG_OUT << ", "; DBG2(__VA_ARGS__); }
#define DBG4(v, ...) { DBG_OUTPUT(v); DBG_OUT << ", "; DBG3(__VA_ARGS__); }
#define DBG5(v, ...) { DBG_OUTPUT(v); DBG_OUT << ", "; DBG4(__VA_ARGS__); }
#define DBG6(v, ...) { DBG_OUTPUT(v); DBG_OUT << ", "; DBG5(__VA_ARGS__); }

#define DEBUG0() { DBG_LINE(); DBG_OUT << std::endl; }
#define DEBUG(...)                                                      \
  {                                                                     \
    DBG_LINE();                                                         \
    DBG_OVERLOAD(__VA_ARGS__, DBG6, DBG5, DBG4, DBG3, DBG2, DBG1)(__VA_ARGS__); \
    DBG_OUT << std::endl;                                               \
  }









int main()
{
  string s;
  cin >> s;
  stringstream ss;
  while(sz(s)){
    i64 last = 1;
    while(last < sz(s) && s[0] == s[last]) ++last;
    ss << s[0] << last;
    s = s.substr(last);
  }
  cout << ss.str() << endl;
}
















Submission

Task問題 B - 高橋くんと文字列圧縮
User nameユーザ名 Komaki
Created time投稿日時
Language言語 C++11 (GCC 4.8.1)
Status状態 AC
Score得点 100
Source lengthソースコード長 4219 Byte
File nameファイル名
Exec time実行時間 27 ms
Memory usageメモリ使用量 928 KB

Test case

Set

Set name Score得点 / Max score Cases
Sample - subtask0_1.txt,subtask0_2.txt,subtask0_3.txt
All 100 / 100 0.txt,1.txt,10.txt,11.txt,12.txt,13.txt,14.txt,15.txt,16.txt,17.txt,18.txt,19.txt,2.txt,20.txt,21.txt,22.txt,23.txt,24.txt,25.txt,26.txt,27.txt,28.txt,29.txt,3.txt,4.txt,5.txt,6.txt,7.txt,8.txt,9.txt,subtask0_1.txt,subtask0_2.txt,subtask0_3.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
0.txt AC 26 ms 800 KB
1.txt AC 24 ms 928 KB
10.txt AC 25 ms 924 KB
11.txt AC 25 ms 672 KB
12.txt AC 26 ms 928 KB
13.txt AC 25 ms 740 KB
14.txt AC 25 ms 924 KB
15.txt AC 26 ms 800 KB
16.txt AC 24 ms 800 KB
17.txt AC 25 ms 924 KB
18.txt AC 24 ms 916 KB
19.txt AC 26 ms 920 KB
2.txt AC 26 ms 796 KB
20.txt AC 25 ms 800 KB
21.txt AC 26 ms 808 KB
22.txt AC 24 ms 928 KB
23.txt AC 24 ms 800 KB
24.txt AC 26 ms 800 KB
25.txt AC 25 ms 924 KB
26.txt AC 25 ms 800 KB
27.txt AC 24 ms 808 KB
28.txt AC 24 ms 676 KB
29.txt AC 26 ms 732 KB
3.txt AC 26 ms 800 KB
4.txt AC 25 ms 792 KB
5.txt AC 26 ms 812 KB
6.txt AC 26 ms 808 KB
7.txt AC 26 ms 804 KB
8.txt AC 25 ms 924 KB
9.txt AC 26 ms 808 KB
subtask0_1.txt AC 26 ms 804 KB
subtask0_2.txt AC 24 ms 676 KB
subtask0_3.txt AC 27 ms 768 KB