御殿場の杉名沢あたりにある蕎麦屋さんで。

日本酒は「國香」「磯自慢」あたり。

蕎麦せんべいに混じった塩昆布の塩気がいいアクセントになって酒がうまい。
蕎麦豆腐と出し巻き卵

揚げ蕎麦がきとホタテのサラダ

鴨焼きと天ぷら

蕎麦と菓子

満足
御殿場の杉名沢あたりにある蕎麦屋さんで。

日本酒は「國香」「磯自慢」あたり。

蕎麦せんべいに混じった塩昆布の塩気がいいアクセントになって酒がうまい。
蕎麦豆腐と出し巻き卵

揚げ蕎麦がきとホタテのサラダ

鴨焼きと天ぷら

蕎麦と菓子

満足
splitができなくて難儀した。
というわけでxでsplit。substrで前から切り刻んでいく。
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int main(){
string str = "..x..x.xxx.xxx.....x.x...x..x.x....x.x...";
int cutAt;
while( (cutAt = str.find_first_of('x')) != str.npos ){
if(cutAt > 0)
{
cout << str.substr(0, cutAt).size() << endl;
}
str = str.substr(cutAt + 1);
}
}
あーこれだと最後のstringは何もしないな。
28052008 cpp
三番目の引数に設定する
sort(vc.begin(), vc.end(), greater<int>());
または
sort(vc.rbegin(), vc.rend());
Catalyst::Plugin::Static::Simpleで静的にサーブしているpdfとかの文書ファイルに(ベーシックとか)なんか適当な認証をかけたくて悩んでた。
そういうファイルはApacheとかに任せれば解決するんだろうけど、残念ながらApache動かせないというシチュエーション。
散々悩んだあげく別にStatic::Simple使わなくていいじゃんということに気づいてしまい、おもむろにStatic::Simpleのソースを読み始めた。
どうせFile::Slurpでもしてbodyに出力してるんだろうなぁと思ってたんだけど違った。
if ( Catalyst->VERSION le '5.33' ) {
# old File::Slurp method
my $content = File::Slurp::read_file( $full_path );
$c->res->body( $content );
}
else {
# new method, pass an IO::File object to body
my $fh = IO::File->new( $full_path, 'r' );
if ( defined $fh ) {
binmode $fh;
$c->res->body( $fh );
}
else {
Catalyst::Exception->throw(
message => "Unable to open $full_path for reading" );
}
}
最近のバージョンはファイルハンドルをres->bodyに渡せるのか。IO::Allとかもいけんのかな?
27052008 perl
書いてみた
最初に書いたのがこれ。
use strict;
use threads;
use threads::shared;
$| = 1;
my $f : shared;
my $ob = threads->create(\&observe);
my $pr = threads->create(\&print_a);
$ob->join();
$pr->join();
sub observe {
my $i;
while(1){
$i = <STDIN>;
chomp($i);
exit if $i eq 'q';
if ($i eq 'p'){
$f == 1 ? $f-- : $f++;
}
}
}
sub print_a {
while(1){
if($f == 1){
print "a";
sleep 1;
}
}
}
Term::ReadLineがよくわからなかったので、あえて使わずに書いてみたら相当ダメな感じになってしまったので、Web+DB Pressを引っ張りだしてきて書き直して投稿。
"3d18"みたいな文字列を二つのintに分けるのにfindとsubstrを使ったが、
string dice = "3d18";
int j = dice.find("d");
int rolls = atoi(dice.substr(0,j).c_str());
int num = atoi(dice.substr(j+1,dice.length() - j - 1).c_str());
そういう場合にはsscanfでよいらしい。
string dice = "3d18";
int n,s;
sscanf( dice.c_str(), "%dd%d",&n,&s);
それにしてもsplitがないのが不便だな。
c++を学ぶのによさげなのでTopCoderのpracticeを解いていたんだけど、ちょうど深夜1時にSRM402があったので、ふと参戦してみようと思った。
で、参戦した。
250点と500点問題を解いた。250点問題は問題の意図を間違えていて、あわてて修正したのでかなりロスった。500はやけに簡単ダナァと思ったら、ダブルデータという落とし穴があった(僕を含め、何人かはこれで撃墜されてた)。
チャレンジタイムとかいう、バグリそうなテストデータを突っ込んでみようタイムがやたらと楽しい。見てただけだけど、ヒトのコードを見ながら色々考えるので、この時間は結構勉強になるな。
初参加の僕は真っ先に標的にされてあっさり500点問題を撃墜されたけど、いわゆる念の洗礼というやつか。
それから今回、同じ組には、初参加は僕の他に3人いたけど、そのうち2人は1問も解いてなかった。みんなそんな感じで参加しにくるのかと。
というわけで、緑色だ。
sortした時に最大値を得るのにnums[nums.size()-1]とやったけど、*--nums.end()でもいいのかね。最小値はnums[0]でも*nums.begin()でわかりやすいのに。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main () {
vector <int> vec;
vec.push_back(4);
vec.push_back(7);
vec.push_back(6);
vec.push_back(3);
sort(vec.begin(), vec.end());
cout << *--vec.end() << endl; // 7
}